sowmya143 has asked for the wisdom of the Perl Monks concerning the following question:

hi,

I am trying to inserting data into a clob datatype in the table and we declared clob size as 4000 but it is inserting only 200 bytes.Actually my coding is like this

use DBI qw(:sql_types); use DBD::Oracle qw(:ora_types); my $sql3="insert into BEE_DBO.SQL_EXECUTION_LOG(process_execution_id," +. "process_step_seq,file_id,sql_statement)". "values(?,?,?,?)"; my $sth2=$dbinfo->{'dbh'}->prepare($sql3); $sth2->bind_param(1,$process_execution_id); $sth2->bind_param(2,$process_step_seq); $sth2->bind_param(3,$file_id); $sth2->bind_param(4,$select_insert,SQL_LONGVARCHAR); $sth2->execute;

here its inserting only 200 bytes but the max. size is 4000. I have no idea about this since i have never worked on this before.Any help would be great.

Thank you.

Edit: g0n - code tags & formatting

Replies are listed 'Best First'.
Re: inserting text into a clob datatype
by Limbic~Region (Chancellor) on Feb 08, 2008 at 18:06 UTC
    sowmya143,
    I have successfully updated an existing LOBs with the following fill-in-the-blank code:
    #!/usr/bin/perl use strict; use warnings; use DBD::Oracle ':ora_types'; # Set up any necessary Oracle ENV variables my $dbh = DBI->connect($conn_string, $user, $pass) or die $DBI::errstr +; my $sth = $dbh->prepare("UPDATE table SET field = ?") or die $dbh->err +str; $sth->bind_param(1, $updated_value, {ora_type => ORA_BLOB}); $sth->execute() or die $dbh->errstr;

    Cheers - L~R

Re: inserting text into a clob datatype
by ww (Archbishop) on Feb 08, 2008 at 18:10 UTC
    Using code tags ( <c>...</c> ) around your code to make your post readable (as you should have done -- see Writeup Formatting Tips) will get you better answers, more quickly:
    use DBI qw(:sql_types); use DBD::Oracle qw(:ora_types); my $sql3="insert into BEE_DBO.SQL_EXECUTION_LOG(process_execution_id," +. "process_step_seq,file_id,sql_statement)". "values(?,?,?,?)"; my $sth2=$dbinfo->{'dbh'}->prepare($sql3); $sth2->bind_param(1,$process_execution_id); $sth2->bind_param(2,$process_step_seq); $sth2->bind_param(3,$file_id); $sth2->bind_param(4,$select_insert,SQL_LONGVARCHAR); $sth2->execute;

    do check & debug help?

    F:\_wo\pl_test>perl -c 667004.pl 667004.pl syntax OK F:\_wo\pl_test>perl 667004.pl Can't call method "prepare" on an undefined value at 667004.pl line 4.