使用SQLPLUS在Oracle中插入多行字符串

2022-04-03 00:00:00 sql newline oracle sqlplus

我有一个SQL脚本,它将把一个长字符串插入到表中。该字符串包含一个新行(并且这个新行是绝对必要的),因此当它被写入文本文件时,查询被拆分成多行。类似于:

insert into table(id, string) values (1, 'Line1goesHere 

Line2GoesHere 
blablablabla
');

这在Toad中运行正常,但当我将其保存为.sql文件并使用SQLplus运行它时,它将每行视为单独的查询,这意味着每行都将失败(因为insert into table(id, string) values (1, 'Line1goesHereLine2GoesHere不是格式良好的脚本。

SP2-0734: unknown command beginning "Line2GoesHere" - rest of line ignored.

是否有解决此问题的方法?


解决方案

启用SQLBLANKLINES以允许在SQL语句中使用空行。例如:

SET SQLBLANKLINES ON
insert into table(id, string) values (1, 'Line1goesHere 
Line2GoesHere 

blablablabla
');

这个问题的前提略有错误。默认情况下,SQL*Plus确实允许多行字符串。只有空白行才会导致问题。

相关文章