'ORA-01461 can bind a LONG value only for insert into a LONG column' Error Due to Oracle Database Definition

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

症状

When restoring an XML backup, (possibly during migrations to Oracle from other DBMS) the import can fail with an ORA-01461 SQL error:

...
org.ofbiz.core.entity.GenericEntityException: while inserting: [GenericEntity:OSPropertyText][id,10460][value,
...] (SQL Exception while executing the following:INSERT INTO propertytext (ID, propertyvalue) VALUES (?, ?) (ORA-01461: can bind a LONG value only for insert into a LONG column)

または

com.opensymphony.module.propertyset.PropertyImplementationException: while updating: [GenericEntity:OSPropertyText][value, ...]
(SQL Exception while executing the following:UPDATE propertytext SET propertyvalue=? WHERE ID=? (ORA-01461: can bind a LONG value only for insert into a LONG column ))

原因

In fieldtype-oracle10g.xml, "very-long" is defined as a VARCHAR(4000) which often can be insufficient to store the desired information. Any entity field that is defined as such in the entitymodel.xml can potentially contain large enough data is susceptible to the problem.

ソリューション

There are two possible solutions:

  1. Modify $JIRA-Installation-Directory/atlassian-jira/WEB-INF/classes/entitydefs/fieldtype-oracle10g.xml to define very-long as a CLOB.
    OR
  2. Increase the size of the particular field in $JIRA-Installation-Directory/WEB-INF/classes/entitydefs/entitymodel.xml to use extremely-long which is CLOB by default.

(info) In either case, drop and re-create the database to have your JIRA applications re-populate the schema with the new definitions (or manually move the data to another table with the new definition and swap it with the previously defined object).

最終更新日 2016 年 4 月 18 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.