#!/usr/bin/perl use strict; use warnings; use DBI; my $sql = q{ declare v_ddl varchar2(4000); begin v_ddl := dbms_metadata.get_ddl('VIEW','USER_TAB_COLUMNS','SYS'); dbms_output.put_line(v_ddl); end; }; my $dbh = DBI->connect('dbi:Oracle:mydb','myuid','mypwd'); $dbh->debug(6); $dbh->{LongReadLen} = 32000; $dbh->{LongTruncOk} = 1; $dbh->func(1000000,'dbms_output_enable'); $dbh->do( $sql ); my @dbms_lines = $dbh->func('dbms_output_get'); print "Current DBI error string: ", (defined DBI->errstr() ? DBI->errstr() : 'none'), "\n" ; print join("\n", @dbms_lines), "\n"; $dbh->disconnect();