Hi,
Can anyone help me resolve this problem?
> I am trying to print DDL statements using the DBI package in a perl script.
>
>
> I am getting this error:
>
> DBConnect Successful: dbi:Oracle:DBINST
> DBD::Oracle::st fetchrow_arrayref failed: ORA-01406: fetched column value was
> truncated (DBD: ORA-01406 error on field 1 of 1, ora_type 112) at test4.pl
> line 32.
>
> All the references I checked for this type of error adviced to include the
> following stmts, which I did:
>
> $dbh->{LongReadLen} = 9000000; <= to increase the buffer size
> $dbh->{LongTruncOk} = 0; <= to ignore error and truncate output
> if buffer is still not large enough
>
> However I still get the same error, with or without the above settings.
>
> 1) Any idea on how to change the script to fix issue?
> 2) Is there a way to change the format for the output created by
> dbms_metadata.get_ddl to resemble out some other commercial database tools?
>
> Regards
>
> Ray
>
>
>
>
> The full perl scipt is listed below.
>
>
> use strict;
> use DBI;
> use File::Path <File::Path> ;
>
>
> my $connection = "dbi:Oracle:DBINST";
> my $user = "SCHEMA_NAME";
> my $password = "***************";
> my $dbh;
>
> $dbh = DBI->connect($connection, $user, $password, { RaiseError => 1,
> AutoCommit => 0 });
>
> if (defined $dbh) {
> print " DBConnect Successful: $connection\n";
> }
> else {
> print " DBConnect Failure: $connection : $!\n";
> exit;
> }
>
> $dbh->{LongReadLen} = 9000000;
> $dbh->{LongTruncOk} = 0;
>
> my $sql_stmt = "select dbms_metadata.get_ddl('PACKAGE','PKG_ETL','$user')
> from dual";
> my $sth = $dbh->prepare( $sql_stmt );
> $sth->execute;
> my $ddl_stmt;
> while( ( $ddl_stmt ) = $sth->fetchrow_arrayref ) {
> print S"$ddl_stmt\n";
> }
> $sth->finish();
>
>
> exit;
>
>
>
==============================================================================
Please access the attached hyperlink for an important electronic communications
disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================