我正在将一个大字符串插入CLOB
列。该字符串(在本例中)长3190个字符 - 但可以更大。
该字符串由xml数据组成 - 有时数据将提交,有时我会收到错误。大约50%的时间都会出现错误。
即使是包含超过5000个字符的字符串,有时也会毫无问题地提交。
不确定下一步该怎么做,因为我认为CLOB
是此数据的最佳数据类型。
我已尝试LONG
LONG RAW
有人建议使用XMLTYPE
,但在我的Oracle版本中不存在(11g - 11.2.0.2.0)
我的插入声明:
INSERT INTO MYTABLE(InterfaceId, SourceSystem, Description, Type, Status, StatusNotes, MessageData, CreatedDate, ChangedDate, Id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
MessageData是发生错误的CLOB
列,我尝试在没有填充此数据的情况下提交,并且它可以正常工作。
错误
ORA-01461: can bind a LONG value only for insert into a LONG column
答案 0 :(得分:1)
ALTER TABLE MYTABLE
ADD COLUMN XML_COL XMLTYPE;
然后
SQL> INSERT INTO MYTABLE(..., XML_COL) VALUES (..., XMLTYPE('<root>example</root>'));
关键是使用XMLTYPE列,然后使用XMLTYPE()函数将字符串转换为XMLTYPE。