Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • So where do we download this? ;)
    --
    life is too short
    • It still has work a fair amount of work that it needs and it's specific to Oracle, but if you want to see the core of it (fair warning, it's a sloppy hack):

      use Text::CSV_XS;;

      my $dbh = DBI->connect(...);
      my $sql = @ARGV > 1
          ? join ' ' => @ARGV
          : shift;

      $sql = munge_sql($dbh, $sql) || die "No sql supplied";

      if ($sql =~ /^\s*desc\s*(\w+)/) {
          desc_tables_and_exit($dbh, $sql, $1);
      }

      print "Executing ($sql)\n" if $ENV{DEBUG};
      my $sth;
      {
          local $^W; # stop

      • This doesn't need to be Oracle specific if you use the 'table_info' method. In fact, you're calling 'column_info' in a deprecated style (though in past docs, I can only tell that the style was once valid for 'table_info'). Since the 'table_info' and 'column_info' methods allow wildcards for the table name, you could do all the tricky parts with just those methods.

        it's a sloppy hack...

        Yeah, there is a bit of slop in that you pass the table name to the desc_tables_and_exit function, but use the captured m

        • by Ovid (2709) on 2004.07.11 15:20 (#32352) Homepage Journal
          Yeah, there is a bit of slop in that you pass the table name to the desc_tables_and_exit function, but use the captured match from the previous function instead of the passed arg...

          Well, that bit of dreck can easily be explained away by the fact that I was busy doing a refactor I later abandoned and when I posted here I noticed I was using $1 so I tried to fix that on the fly and failed miserably :)