[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4635) Oracle ORA-24816 inserting and updating data for entities containg LOB attributes

Jonathan Tougas (JIRA) noreply at atlassian.com
Thu Mar 24 11:25:09 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-4635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=41846#action_41846 ] 

Jonathan Tougas commented on HHH-4635:
--------------------------------------

I ran into this problem and for the benefit of those who also run across this, here's are a few things I found while digging in a little. I am using hibernate-core 3.6.1-Final and ojdbc6 11.2.0.1.0.

- This error occurs when there is more than 4000 bytes of data following a Lob bind variable. This means that you might run into this problem as soon as you have a lob and say a varchar2(4000) in the same table.

- There isn't really a good way to dictate the order of the bind variables, but you can see the order that hibernate uses (see the tip in this section http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#querysql-cud).

- A potential workaround is to put the lob in it's own table with a one to one mapping with the table you would have liked the lob to be in. This way the only data that may get inserted after the lob bind variable would be the primary key value.



> Oracle ORA-24816 inserting and updating data for entities containg LOB attributes
> ---------------------------------------------------------------------------------
>
>                 Key: HHH-4635
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4635
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.3.1
>            Reporter: Clay Atkins
>            Priority: Critical
>
> Inserting or updating an entity with LOB results in the following error from oracle:
> {noformat}
> Caused by: java.sql.SQLException: ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
> {noformat}
> Fairly confident that the ordering of the LOB attributes is not putting them at the end of the insert or the update. Oracle requires all LOB columns to be the last in the statement.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list