<[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]