Just a simple script to dump the source for an Oracle view.
The script reads the TEXT field from DBA_VIEWS, but first
has to determine how long the field is since Oracle defines
this column as a LONG.
Pretty simple quick hack, but people I work with have found
it helpful.
Note: I'm using O/S authentication with a user who has DBA
privs when I run this. If you're familiar with the DBI, you
should be able to make appropriate changes to work for you.
#!/usr/bin/perl
#
# Written by: Mike Sullivan (mps@discomsys.com)
#
# Distributed Computing Systems, LLC
#
# Feel free to hack on this and if you think of anything interesting
# to add to it, let me know and I'll try to add it into the master
# copy I have and post the mods for all to use.
#
# Enjoy.
use DBI;
$lda = DBI->connect("dbi:Oracle:$ENV{ORACLE_SID}", '/', '');
$lda->{LongTruncOk} = 1;
print "Enter viewname: ";
while(<STDIN>) {
chomp($viewname = $_);
$viewname = uc($viewname);
$csr = $lda->prepare("select text_length
from dba_views
where view_name = \'$viewname\'");
$csr->execute;
($text_length) = $csr->fetchrow_array;
$lda->{LongReadLen} = $text_length;
$csr = $lda->prepare("select text
from dba_views
where view_name = \'$viewname\'");
$csr->execute;
($text) = $csr->fetchrow_array;
print "Long text filed length: $text_length\n\n";
print "$text\n";
print "Enter viewname: ";
}
print "\n";
exit;