Clob clob(conn); //existing connection object
string s("looooong string"); // assume that this string is 8k long
int s_size=s.length();
clob.setEmpty();
string sql="INSERT INTO tbl (string_col, clob_col) VALUES (:1,:2)";
stmt->setSQL(sql);
stmt->setString(1,"aaaa");
clob.write(s_size,(unsigned char *)s.c_str(),s_size);
stmt->setClob(2,clob);
stmt->executeUpdate();
And this is not working.I get error
ORA-22275: invalid LOB locator specified
:(
If I changed lines
clob.write(s_size,(unsigned char *)s.c_str(),s_size);
stmt->setClob(2,clob);
to
stmt->setString(2,s);
clob field has only part of string s value :(
primary key is timestamp field and is set to default TIMESTAMP_NOW so I
cannot get it's value :(
database is on another server then client I run so I prefer not to set
primary key to client local timestamp which can be different from server
one.
I'm using Oracle 9i database and client.
Please help!
You will have to first insert an empty clob. SELECT the clob
descriptor column and then UPDATE the clob. Take a look at the
occiclob.cpp sample here:
http://www.oracle.com/technology/sample_code/tech/occi/files/occi10gsamples.tar.gz
Rgds.
Amogh
> r.gz
>
> Rgds.
> Amogh
the way i do it , is when i define the table, set the "default value" to
empty_clob()
that sets it up automatically.
then you can just stuff your text in.
> steve <st...@aol.com> wrote:
cannot identify records you just inserted?
use the "returning" clause for the sql statement & return a key that
identifies the record.
but that said , you better be setting your clob to Empty_clob() , before
putting anything into it or yuo will run into problems later.