【发布时间】:2014-07-13 05:38:20
【问题描述】:
我有一个表,其列名 message 是 NCLOB 类型,ID 是 varchar2 类型
我想更新特定 ID 的消息。我正在使用以下查询
update table_name set message='<<long XML Message>>' where ID=value
我收到以下错误:
Error at Command Line:6 Column:38
Error report:
SQL Error: ORA-01704: string literal too long
01704. 00000 - "string literal too long"
*Cause: The string literal is longer than 4000 characters.
*Action: Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.
我尝试将 xml 存储到变量中并将列更新为该变量,但没有用
【问题讨论】:
-
这个字符串有多长超过 4000 个字符?如果它总是小于 32k,那么您可以将其分配给 PL/SQL 中的 CLOB 变量,然后将其用于插入。否则,您必须在高达 32k 的缝隙中构建 CLOB,这需要更多的工作。您对变量进行了哪些尝试,为什么它不起作用?
标签: sql oracle plsql oracle11g oracle-sqldeveloper