ORA-01406 from a perl script using DBI package
- From: raymond.grech@xxxxxxxxxxxxxxxxx (Raymond Grech)
- Date: Mon, 17 Dec 2007 09:34:46 -0500
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->{LongTrun***} = 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->{LongTrun***} = 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
==============================================================================
- Follow-Ups:
- Re: ORA-01406 from a perl script using DBI package
- From: Alexander V Alekseev
- Re: ORA-01406 from a perl script using DBI package
- Prev by Date: Re: heap corruption in DBD::Oracle
- Next by Date: DBI problem...
- Previous by thread: heap corruption in DBD::Oracle
- Next by thread: Re: ORA-01406 from a perl script using DBI package
- Index(es):