On Mon, Dec 06, 2004 at 05:02:07PM -0000, Dan Osborne wrote: > I'm getting the above error on a new machine set up with perl 5.8.0 > DBD-Oracle 1.16 and DBI 1.46. > > This triggers the error ... > > $cursor=$dbh->prepare(<<__SQL__); > select data_type, > data_length, > data_precision, > data_scale > from user_tab_columns > where > column_name = ? > and > table_name = ? > __SQL__ > > my $res=$cursor->execute(@fld); > > Oddly, if I substitute literals for @fld it works OK ... > > my $res=$cursor->execute('gen_user','gen_users'); > > I can access the same database (Oracle 8.1.6) without error from machines > with the same version of perl but earlier DBDs. > > My NLS_CHARACTERSET is US7ASCII (from $dbh->ora_nls_parameters()). > > Any guidance as to how to correct this error would be much appreciated.
I'd guess that the contents of @fld are marked (by perl) as being UTF-8. You can use the new data_string_diff() and data_string_desc() utility functions in DBI 1.46 to find out more. Don't forget to (re)read the Unicode section of the DBD::Oracle docs. Tim.