調子にのってClass::DBI::OracleでO/Rマッピングじゃ!とQSARやりやすいようにデータベースのモジュールを片っ端から書いたら、
DBD::Oracle::st fetchrow_array failed: ORA-24345: A Truncation or null fetch error occurred (DBD ERROR: ORA-01406 error on field 7 of 14, ora_type 8, LongReadLen too small and/or LongTruncOk not set) [for Statement "SELECT cmr, nnhoh, mixture, mwt, status, mlogp, smiles, tpsa, ro5_score FROM PHYSICO WHERE id=? " with ParamValues: :p1='99999'] at /usr/lib/perl5/site_perl/5.8.3/DBIx/ContextualFetch.pm line 88,line 203.
とエラーが。
どうも、smilesで突っ込んであった化合物情報が長すぎるっぽい。 今まで、問題にならなかったのはsmilesをselectする必要がなかったかららしい。
use base qw(Class::DBI::Oracle); our $VERSION = '0.01'; # Preloaded methods go here. __PACKAGE__->set_db('Main','dbi:Oracle:orcl','kzfm','kzfm',{LongReadLen => 20000}); __PACKAGE__->set_up_table("PHYSICO"); 1; __END__
とやってLongReadLenの値を変えてOKなかんじ。