You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Virag Kothari <vi...@yahoo-inc.com> on 2013/06/28 19:21:03 UTC

column ordering during openjpa inserts

Hi,

Can anyone please reply?

In summary, two questions

Having (@length=4000) is not working when using Oracle db. I see the schema maps to varchar2(4000) but the openjpa insert accepts max 1000 chars (throws ORA-24816 which is strange). It is not an Oracle issue as I tried inserting in Oracle directly and anything less than 4000 chars works. Can someone explain why openjpa allows only 1000 chars even if the length is set higher?

Is it possible to arrange the columns in a particular order (order defined in java file or based on some other order) so all lob's can be at the end? We require this if we face ORA-24816

Thanks,

Virag




From: Virag Kothari <vi...@yahoo-inc.com>>
Date: Monday, June 24, 2013 1:35 PM
To: "users@openjpa.apache.org<ma...@openjpa.apache.org>" <us...@openjpa.apache.org>>
Subject: Re: ORA-24816 - column ordering during inserts

Hi,

An update:

It seems the problem is something else.
In our code, we have defined the length as 4000.

    @Basic

    @Column(name = "sla_xml", length = 4000)

    private String slaXml = null;

However, if this column has more than 1000 characters, it complains with the below ORA-24816.

With less than 1000 characters, it works.

Also, I see in the oracle schema that the column is mapped as varchar2.

So even though the length is defined as 4000, why does openjpa refuse to accept more than 1000 characters?

Can anyone help me to figure this out?


Thanks,

Virag




From: Virag Kothari <vi...@yahoo-inc.com>>
Date: Friday, June 21, 2013 8:01 PM
To: "users@openjpa.apache.org<ma...@openjpa.apache.org>" <us...@openjpa.apache.org>>
Subject: ORA-24816 - column ordering during inserts

Hi,

We are using Open JPA 2.2.2 in Oozie project.

We have a mixture of lob and varchar in our tables. We
recently converted few of lob's to varchar (4000).
Now sometimes, we are seeing the following error while inserting in table:

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-24816:
Expanded non LONG bind data supplied after actual LONG or LOB column

It seems that ORA-24816 happens when lob's are not at the end of the insert/update list.

2 questions:

  1.

Is it possible to arrange the columns in a particular order (order defined in java file or based on some other order) so we can have all lob's at the end?

   2. We never encountered this error before even though we had 6 lobs and almost dozen of varchars in our table.  We converted 3 lobs to varchar2(4000) and started seeing this issue intermittently. Does anyone suspect that this conversion from lob to varchar has a role to play?

Thanks,

Virag










Re: column ordering during openjpa inserts

Posted by J Grassel <fy...@gmail.com>.
Be sure to add the following to your config when taking the trace As Long As The SQL Parameters Do Not Contain Real (i.e., Private) Data:

<property name="openjpa.ConnectionFactoryProperties" value="PrintParameters=true"/>

This will show what kind of parameter Data OpenJPA is setting on the PreparedStatements.  This way we can see if OpenJPA is doing something foolish, or if it's somewhere in the JDBC/DB zones.

On Jun 28, 2013, at 12:21 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:

>  ORA-24816


Re: column ordering during openjpa inserts

Posted by J Grassel <fy...@gmail.com>.
Hey there.  Looking through the trace now.  Thanks!

On Jun 28, 2013, at 9:02 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:

> Hi,
> 
> Attached is the trace. Let me work on a unit test case which uses Oracle
> as db.
> 
> Thanks,
> Virag
> 
> On 6/28/13 12:10 PM, "J Grassel" <fy...@gmail.com> wrote:
> 
>> Would it be possible to provide a zip with a unit test for the issue?
>> And in the meantime, can you provide an openjpa trace (a full trace,
>> including sql)?  A trace would give me a head start before trying out a
>> junit.
>> 
>> Thanks!
>> 
>> On Jun 28, 2013, at 1:49 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:
>> 
>>> Hi Jody,
>>> 
>>> Thanks for the reply.
>>> Attached is the schema dump for the table. The schema generator tool
>>> does
>>> map 
>>> the sla_xml column to varchar2(4000). So it seems to honor the @length
>>> annotation.
>>> The code where we define the JPA annotations for this table are at
>>> 
>>> https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apach
>>> e/
>>> oozie/WorkflowActionBean.java
>>> and 
>>> 
>>> https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apach
>>> e/
>>> oozie/client/rest/JsonWorkflowAction.java
>>> 
>>> Thanks,
>>> Virag
>>> 
>>> On 6/28/13 10:29 AM, "Jody Grassel" <fy...@gmail.com> wrote:
>>> 
>>>> Hey there.  The @Length annotation should only be used by OpenJPA as an
>>>> instruction to the schema generator tool, the runtime relies on the
>>>> database to enforce the maximum length of a given column - which may or
>>>> may
>>>> not throw an Exception given the configured behavior of the database.
>>>> 
>>>> Would you be willing to provide a unit test and a schema dump of your
>>>> table
>>>> from the database?
>>>> 
>>>> On Friday, June 28, 2013, Virag Kothari wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> Can anyone please reply?
>>>>> 
>>>>> In summary, two questions
>>>>> 
>>>>> Having (@length=4000) is not working when using Oracle db. I see the
>>>>> schema maps to varchar2(4000) but the openjpa insert accepts max 1000
>>>>> chars
>>>>> (throws ORA-24816 which is strange). It is not an Oracle issue as I
>>>>> tried
>>>>> inserting in Oracle directly and anything less than 4000 chars works.
>>>>> Can
>>>>> someone explain why openjpa allows only 1000 chars even if the length
>>>>> is
>>>>> set higher?
>>>>> 
>>>>> Is it possible to arrange the columns in a particular order (order
>>>>> defined
>>>>> in java file or based on some other order) so all lob's can be at the
>>>>> end?
>>>>> We require this if we face ORA-24816
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Virag
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>>>> virag@yahoo-inc.com <javascript:;>>>
>>>>> Date: Monday, June 24, 2013 1:35 PM
>>>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>>>> users@openjpa.apache.org <javascript:;>>"
>>>>> <users@openjpa.apache.org<javascript:;>
>>>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>>>> Subject: Re: ORA-24816 - column ordering during inserts
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> An update:
>>>>> 
>>>>> It seems the problem is something else.
>>>>> In our code, we have defined the length as 4000.
>>>>> 
>>>>>   @Basic
>>>>> 
>>>>>   @Column(name = "sla_xml", length = 4000)
>>>>> 
>>>>>   private String slaXml = null;
>>>>> 
>>>>> However, if this column has more than 1000 characters, it complains
>>>>> with
>>>>> the below ORA-24816.
>>>>> 
>>>>> With less than 1000 characters, it works.
>>>>> 
>>>>> Also, I see in the oracle schema that the column is mapped as
>>>>> varchar2.
>>>>> 
>>>>> So even though the length is defined as 4000, why does openjpa refuse
>>>>> to
>>>>> accept more than 1000 characters?
>>>>> 
>>>>> Can anyone help me to figure this out?
>>>>> 
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Virag
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>>>> virag@yahoo-inc.com <javascript:;>>>
>>>>> Date: Friday, June 21, 2013 8:01 PM
>>>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>>>> users@openjpa.apache.org <javascript:;>>"
>>>>> <users@openjpa.apache.org<javascript:;>
>>>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>>>> Subject: ORA-24816 - column ordering during inserts
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> We are using Open JPA 2.2.2 in Oozie project.
>>>>> 
>>>>> We have a mixture of lob and varchar in our tables. We
>>>>> recently converted few of lob's to varchar (4000).
>>>>> Now sometimes, we are seeing the following error while inserting in
>>>>> table:
>>>>> 
>>>>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException:
>>>>> ORA-24816:
>>>>> Expanded non LONG bind data supplied after actual LONG or LOB column
>>>>> 
>>>>> It seems that ORA-24816 happens when lob's are not at the end of the
>>>>> insert/update list.
>>>>> 
>>>>> 2 questions:
>>>>> 
>>>>> 1.
>>>>> 
>>>>> Is it possible to arrange the columns in a particular order (order
>>>>> defined
>>>>> in java file or based on some other order) so we can have all lob's at
>>>>> the
>>>>> end?
>>>>> 
>>>>>  2. We never encountered this error before even though we had 6 lobs
>>>>> and
>>>>> almost dozen of varchars in our table.  We converted 3 lobs to
>>>>> varchar2(4000) and started seeing this issue intermittently. Does
>>>>> anyone
>>>>> suspect that this conversion from lob to varchar has a role to play?
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Virag
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>> 
>>> <wf_action_schema.txt>
>> 
> 
> <jpa_exception.txt>


Re: column ordering during openjpa inserts

Posted by Virag Kothari <vi...@yahoo-inc.com>.
Hi,

Attached is the trace. Let me work on a unit test case which uses Oracle
as db.

Thanks,
Virag

On 6/28/13 12:10 PM, "J Grassel" <fy...@gmail.com> wrote:

>Would it be possible to provide a zip with a unit test for the issue?
>And in the meantime, can you provide an openjpa trace (a full trace,
>including sql)?  A trace would give me a head start before trying out a
>junit.
>
>Thanks!
>
>On Jun 28, 2013, at 1:49 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:
>
>> Hi Jody,
>> 
>> Thanks for the reply.
>> Attached is the schema dump for the table. The schema generator tool
>>does
>> map 
>> the sla_xml column to varchar2(4000). So it seems to honor the @length
>> annotation.
>> The code where we define the JPA annotations for this table are at
>> 
>>https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apach
>>e/
>> oozie/WorkflowActionBean.java
>> and 
>> 
>>https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apach
>>e/
>> oozie/client/rest/JsonWorkflowAction.java
>> 
>> Thanks,
>> Virag
>> 
>> On 6/28/13 10:29 AM, "Jody Grassel" <fy...@gmail.com> wrote:
>> 
>>> Hey there.  The @Length annotation should only be used by OpenJPA as an
>>> instruction to the schema generator tool, the runtime relies on the
>>> database to enforce the maximum length of a given column - which may or
>>> may
>>> not throw an Exception given the configured behavior of the database.
>>> 
>>> Would you be willing to provide a unit test and a schema dump of your
>>> table
>>> from the database?
>>> 
>>> On Friday, June 28, 2013, Virag Kothari wrote:
>>> 
>>>> Hi,
>>>> 
>>>> Can anyone please reply?
>>>> 
>>>> In summary, two questions
>>>> 
>>>> Having (@length=4000) is not working when using Oracle db. I see the
>>>> schema maps to varchar2(4000) but the openjpa insert accepts max 1000
>>>> chars
>>>> (throws ORA-24816 which is strange). It is not an Oracle issue as I
>>>> tried
>>>> inserting in Oracle directly and anything less than 4000 chars works.
>>>> Can
>>>> someone explain why openjpa allows only 1000 chars even if the length
>>>>is
>>>> set higher?
>>>> 
>>>> Is it possible to arrange the columns in a particular order (order
>>>> defined
>>>> in java file or based on some other order) so all lob's can be at the
>>>> end?
>>>> We require this if we face ORA-24816
>>>> 
>>>> Thanks,
>>>> 
>>>> Virag
>>>> 
>>>> 
>>>> 
>>>> 
>>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>>> virag@yahoo-inc.com <javascript:;>>>
>>>> Date: Monday, June 24, 2013 1:35 PM
>>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>>> users@openjpa.apache.org <javascript:;>>"
>>>> <users@openjpa.apache.org<javascript:;>
>>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>>> Subject: Re: ORA-24816 - column ordering during inserts
>>>> 
>>>> Hi,
>>>> 
>>>> An update:
>>>> 
>>>> It seems the problem is something else.
>>>> In our code, we have defined the length as 4000.
>>>> 
>>>>    @Basic
>>>> 
>>>>    @Column(name = "sla_xml", length = 4000)
>>>> 
>>>>    private String slaXml = null;
>>>> 
>>>> However, if this column has more than 1000 characters, it complains
>>>>with
>>>> the below ORA-24816.
>>>> 
>>>> With less than 1000 characters, it works.
>>>> 
>>>> Also, I see in the oracle schema that the column is mapped as
>>>>varchar2.
>>>> 
>>>> So even though the length is defined as 4000, why does openjpa refuse
>>>>to
>>>> accept more than 1000 characters?
>>>> 
>>>> Can anyone help me to figure this out?
>>>> 
>>>> 
>>>> Thanks,
>>>> 
>>>> Virag
>>>> 
>>>> 
>>>> 
>>>> 
>>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>>> virag@yahoo-inc.com <javascript:;>>>
>>>> Date: Friday, June 21, 2013 8:01 PM
>>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>>> users@openjpa.apache.org <javascript:;>>"
>>>> <users@openjpa.apache.org<javascript:;>
>>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>>> Subject: ORA-24816 - column ordering during inserts
>>>> 
>>>> Hi,
>>>> 
>>>> We are using Open JPA 2.2.2 in Oozie project.
>>>> 
>>>> We have a mixture of lob and varchar in our tables. We
>>>> recently converted few of lob's to varchar (4000).
>>>> Now sometimes, we are seeing the following error while inserting in
>>>> table:
>>>> 
>>>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException:
>>>>ORA-24816:
>>>> Expanded non LONG bind data supplied after actual LONG or LOB column
>>>> 
>>>> It seems that ORA-24816 happens when lob's are not at the end of the
>>>> insert/update list.
>>>> 
>>>> 2 questions:
>>>> 
>>>>  1.
>>>> 
>>>> Is it possible to arrange the columns in a particular order (order
>>>> defined
>>>> in java file or based on some other order) so we can have all lob's at
>>>> the
>>>> end?
>>>> 
>>>>   2. We never encountered this error before even though we had 6 lobs
>>>> and
>>>> almost dozen of varchars in our table.  We converted 3 lobs to
>>>> varchar2(4000) and started seeing this issue intermittently. Does
>>>>anyone
>>>> suspect that this conversion from lob to varchar has a role to play?
>>>> 
>>>> Thanks,
>>>> 
>>>> Virag
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>> 
>> <wf_action_schema.txt>
>


Re: column ordering during openjpa inserts

Posted by J Grassel <fy...@gmail.com>.
Would it be possible to provide a zip with a unit test for the issue?  And in the meantime, can you provide an openjpa trace (a full trace, including sql)?  A trace would give me a head start before trying out a junit.

Thanks!

On Jun 28, 2013, at 1:49 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:

> Hi Jody,
> 
> Thanks for the reply.
> Attached is the schema dump for the table. The schema generator tool does
> map 
> the sla_xml column to varchar2(4000). So it seems to honor the @length
> annotation.
> The code where we define the JPA annotations for this table are at
> https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apache/
> oozie/WorkflowActionBean.java
> and 
> https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apache/
> oozie/client/rest/JsonWorkflowAction.java
> 
> Thanks,
> Virag
> 
> On 6/28/13 10:29 AM, "Jody Grassel" <fy...@gmail.com> wrote:
> 
>> Hey there.  The @Length annotation should only be used by OpenJPA as an
>> instruction to the schema generator tool, the runtime relies on the
>> database to enforce the maximum length of a given column - which may or
>> may
>> not throw an Exception given the configured behavior of the database.
>> 
>> Would you be willing to provide a unit test and a schema dump of your
>> table
>> from the database?
>> 
>> On Friday, June 28, 2013, Virag Kothari wrote:
>> 
>>> Hi,
>>> 
>>> Can anyone please reply?
>>> 
>>> In summary, two questions
>>> 
>>> Having (@length=4000) is not working when using Oracle db. I see the
>>> schema maps to varchar2(4000) but the openjpa insert accepts max 1000
>>> chars
>>> (throws ORA-24816 which is strange). It is not an Oracle issue as I
>>> tried
>>> inserting in Oracle directly and anything less than 4000 chars works.
>>> Can
>>> someone explain why openjpa allows only 1000 chars even if the length is
>>> set higher?
>>> 
>>> Is it possible to arrange the columns in a particular order (order
>>> defined
>>> in java file or based on some other order) so all lob's can be at the
>>> end?
>>> We require this if we face ORA-24816
>>> 
>>> Thanks,
>>> 
>>> Virag
>>> 
>>> 
>>> 
>>> 
>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>> virag@yahoo-inc.com <javascript:;>>>
>>> Date: Monday, June 24, 2013 1:35 PM
>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>> users@openjpa.apache.org <javascript:;>>"
>>> <users@openjpa.apache.org<javascript:;>
>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>> Subject: Re: ORA-24816 - column ordering during inserts
>>> 
>>> Hi,
>>> 
>>> An update:
>>> 
>>> It seems the problem is something else.
>>> In our code, we have defined the length as 4000.
>>> 
>>>    @Basic
>>> 
>>>    @Column(name = "sla_xml", length = 4000)
>>> 
>>>    private String slaXml = null;
>>> 
>>> However, if this column has more than 1000 characters, it complains with
>>> the below ORA-24816.
>>> 
>>> With less than 1000 characters, it works.
>>> 
>>> Also, I see in the oracle schema that the column is mapped as varchar2.
>>> 
>>> So even though the length is defined as 4000, why does openjpa refuse to
>>> accept more than 1000 characters?
>>> 
>>> Can anyone help me to figure this out?
>>> 
>>> 
>>> Thanks,
>>> 
>>> Virag
>>> 
>>> 
>>> 
>>> 
>>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>>> virag@yahoo-inc.com <javascript:;>>>
>>> Date: Friday, June 21, 2013 8:01 PM
>>> To: "users@openjpa.apache.org <javascript:;><mailto:
>>> users@openjpa.apache.org <javascript:;>>"
>>> <users@openjpa.apache.org<javascript:;>
>>> <mailto:users@openjpa.apache.org <javascript:;>>>
>>> Subject: ORA-24816 - column ordering during inserts
>>> 
>>> Hi,
>>> 
>>> We are using Open JPA 2.2.2 in Oozie project.
>>> 
>>> We have a mixture of lob and varchar in our tables. We
>>> recently converted few of lob's to varchar (4000).
>>> Now sometimes, we are seeing the following error while inserting in
>>> table:
>>> 
>>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-24816:
>>> Expanded non LONG bind data supplied after actual LONG or LOB column
>>> 
>>> It seems that ORA-24816 happens when lob's are not at the end of the
>>> insert/update list.
>>> 
>>> 2 questions:
>>> 
>>>  1.
>>> 
>>> Is it possible to arrange the columns in a particular order (order
>>> defined
>>> in java file or based on some other order) so we can have all lob's at
>>> the
>>> end?
>>> 
>>>   2. We never encountered this error before even though we had 6 lobs
>>> and
>>> almost dozen of varchars in our table.  We converted 3 lobs to
>>> varchar2(4000) and started seeing this issue intermittently. Does anyone
>>> suspect that this conversion from lob to varchar has a role to play?
>>> 
>>> Thanks,
>>> 
>>> Virag
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
> 
> <wf_action_schema.txt>


Re: column ordering during openjpa inserts

Posted by Virag Kothari <vi...@yahoo-inc.com>.
Hi Jody,

Thanks for the reply.
Attached is the schema dump for the table. The schema generator tool does
map 
the sla_xml column to varchar2(4000). So it seems to honor the @length
annotation.
The code where we define the JPA annotations for this table are at
https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apache/
oozie/WorkflowActionBean.java
and 
https://svn.apache.org/repos/asf/oozie/trunk/core/src/main/java/org/apache/
oozie/client/rest/JsonWorkflowAction.java

Thanks,
Virag

On 6/28/13 10:29 AM, "Jody Grassel" <fy...@gmail.com> wrote:

>Hey there.  The @Length annotation should only be used by OpenJPA as an
>instruction to the schema generator tool, the runtime relies on the
>database to enforce the maximum length of a given column - which may or
>may
>not throw an Exception given the configured behavior of the database.
>
>Would you be willing to provide a unit test and a schema dump of your
>table
>from the database?
>
>On Friday, June 28, 2013, Virag Kothari wrote:
>
>> Hi,
>>
>> Can anyone please reply?
>>
>> In summary, two questions
>>
>> Having (@length=4000) is not working when using Oracle db. I see the
>> schema maps to varchar2(4000) but the openjpa insert accepts max 1000
>>chars
>> (throws ORA-24816 which is strange). It is not an Oracle issue as I
>>tried
>> inserting in Oracle directly and anything less than 4000 chars works.
>>Can
>> someone explain why openjpa allows only 1000 chars even if the length is
>> set higher?
>>
>> Is it possible to arrange the columns in a particular order (order
>>defined
>> in java file or based on some other order) so all lob's can be at the
>>end?
>> We require this if we face ORA-24816
>>
>> Thanks,
>>
>> Virag
>>
>>
>>
>>
>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>> virag@yahoo-inc.com <javascript:;>>>
>> Date: Monday, June 24, 2013 1:35 PM
>> To: "users@openjpa.apache.org <javascript:;><mailto:
>> users@openjpa.apache.org <javascript:;>>"
>><users@openjpa.apache.org<javascript:;>
>> <mailto:users@openjpa.apache.org <javascript:;>>>
>> Subject: Re: ORA-24816 - column ordering during inserts
>>
>> Hi,
>>
>> An update:
>>
>> It seems the problem is something else.
>> In our code, we have defined the length as 4000.
>>
>>     @Basic
>>
>>     @Column(name = "sla_xml", length = 4000)
>>
>>     private String slaXml = null;
>>
>> However, if this column has more than 1000 characters, it complains with
>> the below ORA-24816.
>>
>> With less than 1000 characters, it works.
>>
>> Also, I see in the oracle schema that the column is mapped as varchar2.
>>
>> So even though the length is defined as 4000, why does openjpa refuse to
>> accept more than 1000 characters?
>>
>> Can anyone help me to figure this out?
>>
>>
>> Thanks,
>>
>> Virag
>>
>>
>>
>>
>> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
>> virag@yahoo-inc.com <javascript:;>>>
>> Date: Friday, June 21, 2013 8:01 PM
>> To: "users@openjpa.apache.org <javascript:;><mailto:
>> users@openjpa.apache.org <javascript:;>>"
>><users@openjpa.apache.org<javascript:;>
>> <mailto:users@openjpa.apache.org <javascript:;>>>
>> Subject: ORA-24816 - column ordering during inserts
>>
>> Hi,
>>
>> We are using Open JPA 2.2.2 in Oozie project.
>>
>> We have a mixture of lob and varchar in our tables. We
>> recently converted few of lob's to varchar (4000).
>> Now sometimes, we are seeing the following error while inserting in
>>table:
>>
>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-24816:
>> Expanded non LONG bind data supplied after actual LONG or LOB column
>>
>> It seems that ORA-24816 happens when lob's are not at the end of the
>> insert/update list.
>>
>> 2 questions:
>>
>>   1.
>>
>> Is it possible to arrange the columns in a particular order (order
>>defined
>> in java file or based on some other order) so we can have all lob's at
>>the
>> end?
>>
>>    2. We never encountered this error before even though we had 6 lobs
>>and
>> almost dozen of varchars in our table.  We converted 3 lobs to
>> varchar2(4000) and started seeing this issue intermittently. Does anyone
>> suspect that this conversion from lob to varchar has a role to play?
>>
>> Thanks,
>>
>> Virag
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>


Re: column ordering during openjpa inserts

Posted by Jody Grassel <fy...@gmail.com>.
Hey there.  The @Length annotation should only be used by OpenJPA as an
instruction to the schema generator tool, the runtime relies on the
database to enforce the maximum length of a given column - which may or may
not throw an Exception given the configured behavior of the database.

Would you be willing to provide a unit test and a schema dump of your table
from the database?

On Friday, June 28, 2013, Virag Kothari wrote:

> Hi,
>
> Can anyone please reply?
>
> In summary, two questions
>
> Having (@length=4000) is not working when using Oracle db. I see the
> schema maps to varchar2(4000) but the openjpa insert accepts max 1000 chars
> (throws ORA-24816 which is strange). It is not an Oracle issue as I tried
> inserting in Oracle directly and anything less than 4000 chars works. Can
> someone explain why openjpa allows only 1000 chars even if the length is
> set higher?
>
> Is it possible to arrange the columns in a particular order (order defined
> in java file or based on some other order) so all lob's can be at the end?
> We require this if we face ORA-24816
>
> Thanks,
>
> Virag
>
>
>
>
> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
> virag@yahoo-inc.com <javascript:;>>>
> Date: Monday, June 24, 2013 1:35 PM
> To: "users@openjpa.apache.org <javascript:;><mailto:
> users@openjpa.apache.org <javascript:;>>" <users@openjpa.apache.org<javascript:;>
> <mailto:users@openjpa.apache.org <javascript:;>>>
> Subject: Re: ORA-24816 - column ordering during inserts
>
> Hi,
>
> An update:
>
> It seems the problem is something else.
> In our code, we have defined the length as 4000.
>
>     @Basic
>
>     @Column(name = "sla_xml", length = 4000)
>
>     private String slaXml = null;
>
> However, if this column has more than 1000 characters, it complains with
> the below ORA-24816.
>
> With less than 1000 characters, it works.
>
> Also, I see in the oracle schema that the column is mapped as varchar2.
>
> So even though the length is defined as 4000, why does openjpa refuse to
> accept more than 1000 characters?
>
> Can anyone help me to figure this out?
>
>
> Thanks,
>
> Virag
>
>
>
>
> From: Virag Kothari <virag@yahoo-inc.com <javascript:;><mailto:
> virag@yahoo-inc.com <javascript:;>>>
> Date: Friday, June 21, 2013 8:01 PM
> To: "users@openjpa.apache.org <javascript:;><mailto:
> users@openjpa.apache.org <javascript:;>>" <users@openjpa.apache.org<javascript:;>
> <mailto:users@openjpa.apache.org <javascript:;>>>
> Subject: ORA-24816 - column ordering during inserts
>
> Hi,
>
> We are using Open JPA 2.2.2 in Oozie project.
>
> We have a mixture of lob and varchar in our tables. We
> recently converted few of lob's to varchar (4000).
> Now sometimes, we are seeing the following error while inserting in table:
>
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-24816:
> Expanded non LONG bind data supplied after actual LONG or LOB column
>
> It seems that ORA-24816 happens when lob's are not at the end of the
> insert/update list.
>
> 2 questions:
>
>   1.
>
> Is it possible to arrange the columns in a particular order (order defined
> in java file or based on some other order) so we can have all lob's at the
> end?
>
>    2. We never encountered this error before even though we had 6 lobs and
> almost dozen of varchars in our table.  We converted 3 lobs to
> varchar2(4000) and started seeing this issue intermittently. Does anyone
> suspect that this conversion from lob to varchar has a role to play?
>
> Thanks,
>
> Virag
>
>
>
>
>
>
>
>
>
>