Lou*_*hys 34 sql oracle newline sqlplus
我有一个SQL脚本,将长字符串插入表中.该字符串包含一个新行(并且这个新行是绝对必要的),因此当它在文本文件中写入时,查询将被拆分为多行.就像是:
insert into table(id, string) values (1, 'Line1goesHere
Line2GoesHere
blablablabla
');
Run Code Online (Sandbox Code Playgroud)
这蟾蜍运行正常,但是当我保存这个作为一个.sql文件,并用sqlplus运行它,它会认为每行一个单独的查询,这意味着每行会失败(怎么一回事,因为insert into table(id, string) values (1, 'Line1goesHere,Line2GoesHere没有很好地格式化的脚本.
SP2-0734: unknown command beginning "Line2GoesHere" - rest of line ignored.
Run Code Online (Sandbox Code Playgroud)
有没有办法来解决这个问题?
jim*_*ara 52
启用SQLBLANKLINES允许在SQL语句中的空行.例如:
SET SQLBLANKLINES ON
insert into table(id, string) values (1, 'Line1goesHere
Line2GoesHere
blablablabla
');
Run Code Online (Sandbox Code Playgroud)
这个问题的前提是略有错误的.SQL*Plus默认允许多行字符串.只有空行会导致问题.
ibr*_*041 11
您还可以使用Oracle SQL的非常有名的功能:Perl样式引用的字符串.
SQL> select q'[f dfgdfklgdfkjgd
2 sdffdslkdflkgj dglk
3 glfdglkjdgkldj ]'
4 from dual;
Q'[FDFGDFKLGDFKJGDSDFFDSLKDFLKGJDGLKGLFDGLKJDGKLDJ]'
----------------------------------------------------
f dfgdfklgdfkjgd
sdffdslkdflkgj dglk
glfdglkjdgkldj
Run Code Online (Sandbox Code Playgroud)