引用的字符串未正确终止
Posted
技术标签:
【中文标题】引用的字符串未正确终止【英文标题】:quoted string not properly terminated 【发布时间】:2012-03-26 11:32:51 【问题描述】:我正在使用简单的插入语句将值插入到 CLOB 变量中,无论如何我收到了错误 ORA-01756: 引用的字符串没有正确终止。
我尝试在单行中写入值,但我遇到了另一个错误,我无法在该行中使用 2500 个字符。
当我将行分隔为小于 2500 时,我遇到了错误 ORA-01756:。
我使用了以下语句
INSERT INTO table(USER_PROFILE
,NA_TO
)VALUES(
'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
');
【问题讨论】:
不,我只是将行分开作为示例,'oooooooooooooooooooooooo\n oooooooooooooooooooooo\n ooooooooooooooooooooooooo',其中 \n 是新行。 修订评论:您是否尝试过使用连接函数(有时可用作CONCAT
)或运算符(SQL-92 标准||
、SQL Server +
、等)?
我现在试了 Oracle 运算符 ||但也不起作用,如果可以的话,可以给我使用 CONCAT 的例子,我正在使用 ORACLE
在您的示例中,您没有为其中一列指定值,是否像您的代码中那样?还有一件事,你用的是 sqlplus 吗?
您的示例是否也会因短值而失败,例如只有一个 o
而不是您的非常大的数字?如果是这样,请减少您的示例失败代码 - 请参阅SSCCE
【参考方案1】:
请尝试使用可用的连接函数(有时可用作CONCAT
)或连接运算符(SQL-92 标准||
、SQL Server +
等)将长字符串写入多个字符串。这样您就可以避免这些错误,因为单个字符串文字不需要很长。
此外,您必须为列出的每一列提供一个值。另一方面,您不需要列出表中的所有列。
INSERT INTO table(USER_PROFILE, NA_TO) VALUES(
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' ||
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' ||
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' ||
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' ||
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' ||
<many more lines like those>
'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo' || 'oooooooooo',
null)
【讨论】:
以上是关于引用的字符串未正确终止的主要内容,如果未能解决你的问题,请参考以下文章
执行 oracle 更改查询时出现错误:ORA-01756:引用的字符串未正确终止
Postgres:使用psycopg2或附近未终止的引用字符串