<[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
>
> We are having a problem. Any help would be appreciated.
>
> 1: We are running Perl on NT.
> 2: Perl is reading lines of code from a file, concatonating it in a
variable,
>    and writing to an Oracle database.
> 3: I keep on getting a message:
>    DBD::ODBC::st  excute failed: [Microsoft][ODBC driver for
Oracle][Oracle]ORA-01461::can bind
>    a LONG value only for insert into a LONG column (SQL-22001)
[Microsoft][ODBC driver for Oracle]
>    Error in Parameter 2: Data truncated <SQL-01004> (DBD:
st_execute/SQLExecute err=-1)
>
>
> The execute usualy works fine.  The variable is much less than the 32K
limit in the database.
> Any question, suggestions?

This sounds familiar to a problem that I had. Try doing the following after
your connect (you can pass this on the connect too if you want)

$dbh->{LongReadLen} = 32768;


also, here's a snip from another post I just found
-----------------
The origin of LongReadLen is related to the problem of not knowing
in advance how long the longest LONG selected will be. So for drivers
which need to pre-allocate buffers for the db api to fetch into there
needed to be some way to define what size to use.

If your db api provides a way to dynamically size buffers for LONGs
then the original motivation for LongReadLen goes away.
---------------------------------------

So guess (if this helps at all) you want to set smallest value you can get
away with

HTH

Rob

>
> Thank you



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to