you could just check all your values for strlen or isset and assign NULL
to the ones that should be prior to passing off to bind_param function.
"Tompkins, Creigh" wrote:
>
> Help,
>
> I have a generic table wrapper that builds inserts on the fly using
> bind_param. It works fine until it tries to insert a space filled character
> variable into a NOT NULL varchar2 table column.
>
> It then produces the error:
>
> DBI Error string=ORA-01400: cannot insert NULL into
> ("FACTORY"."MENUFILE"."PROGRAM_NAME") (DBD ERROR: OCIStmtExecute)
> [/home/tompkic1/cvsco/factory/trunk/library/perl_modules/Schemas/Table_wrapp
> er.pm] INSERT INTO FACTORY.MENUFILE (
>
> Here's the bind_param statement:
>
> my $number = 0;
> foreach my $key ( sort( keys( %{ $column_info_hash{$table_name} } ) ) ){
> $sth->bind_param( ++$number, $hashref->{$key} );
> }
>
> This only occurs if I use the bind_param method. If I hardcode the entire
> insert statement and surround the varchar fields in single quotes it works
> fine.
> But I'm hoping to find an answer that will keep the concept of the generic
> table wrapper alive.
>
> Any help would greatly appreciated.
>
> Thank you,
> Creigh Tompkins
> [EMAIL PROTECTED]
> IMPORTANT NOTICE: The contents of this e-mail are confidential to the
> ordinary user of the e-mail address to which it was addressed and may also
> be privileged. If you are not the addressee of this e-mail you may not
> copy, forward, disclose or otherwise use it or any part of it in any form
> whatsoever. If you have received this e-mail in error please e-mail the
> sender by replying to this message.
--
Barbara E. Lindsey,
Phone: (352) 392-5198 ext. 314 Fax: (352) 392-8162
"The road goes ever on and on. "
- Bilbo Baggins