最近用plsql通过 @sql语句路径的方式 执行sql语句时,遇到执行了一半语句执行不下去的情况,
如果是A文件或者B文件都分别单独执行时都没有任何问题,
但恰恰是通过 @sql语句路径的方式执行时,AB连起来执行就出了问题,
后来经过排查才发现,A文件最后一行sql语句没有以“;”结束,
有人可能会说了,在plsql中经常很多语句不用“;”结束一样可以执行,甚至多行语句一起执行,最后一行语句也没有“;”一样可以执行,的确这样是可以的,
但是有一点需要注意:
最后一行语句没有“;”,但至少这最后一行后面还有空行或者至少得有个空格,
也就是说,如果想要多个sql文件都能够按顺序连贯执行成功,
前面的sql文件最后一行sql语句不能是不含“;”结尾并且后面不含空行或空格等,
不然将会阻断后面sql文件的执行。(其实应该还要满足一个条件才会出我遇到的这个问题,也就是:后面一个sql文件恰恰首行也不是以空格或空行开头的,该有
多大的巧合才会遇到啊,)
这个是我实际应用中遇到的问题,都怪我当时手贱,整理优化sql时把某个文件里面的一些空行删掉了,恰恰有个没有以“;”结尾的sql语句就成了最后一行,