引用的字符串未正确终止

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:引用的字符串未正确终止

SQL 引用的字符串未正确终止错误 - Oracle

引用在 plsql 中未正确终止

Postgres:使用psycopg2或附近未终止的引用字符串

使用 .Net Core 在 linux 机器上查找内核数失败并出现错误(未终止的引用字符串)

正则表达式中的未终止组