诡异的 "Error 45 initializing SQL*Plus - Internal error"

Long time no writing :(

最近一直在忙乱起八糟的事情,生活上,工作上。。。。

闲话不说了,今天碰到一个诡异的事情。其实要做的事情相当简单,就是在SQL*PLUS里面执行一堆SQL文件,为了管理清晰些,我把很多内容拆成了很多小的SQL文件,放到不同文件夹中,每个文件夹中都有一个index.sql文件包含这个文件夹下的所有sql文件,最后有个总的index.sql文件用来当做入口来执行。 

就像如下这样:

 

比如说在Table\index.sql里面就包含了文件夹Tabe下所有的sql文件,

@@LXXXTTT.SQL
@@XXXXXX.SQL
@@register_objects.txt

 

本来是很简单的,应该没有任何问题,可是在运行的时候居然碰到如下问题, 

Elapsed: 00:00:00.56
20:21:52 SQL> Error 45 initializing SQL*Plus
Internal error

 

脚本只是执行到Table\register_objects.txt就遇到这个问题了,不再往下执行了。register_objects里面只是运行一个SP而已,

 1 --------------------------------------------------------------------
 2 --!!Attention!! 
 3 --Put Foreign Key creation in this file
 4 --------------------------------------------------------------------
 5 BEGIN
 6     PACssssT.CRsssTE_FK(v_table_name => 'LsDssss_ASSOCIATE',
 7                         v_child_columns => 'DsssENT_ENTRY_ID',
 8                         v_parent_table  => 'LO_DOsssNT_ENTRY',
 9                         v_parent_columns => 'ID',
10                         v_delete_rule => 'cascade',
11                         v_fpm_id   => 'Uss1676',
12                         v_products => 'W');
13 END;
14 /
15 <空行>
16 <空行>

 

最后仔细瞅了瞅,发现这个文件最后有两个空行,去掉一个空行,然后运行就没有错了!! 相当诡异!!

 

 

--------

P.S.

写了一个小bat, 方便生成index.sql

1 @echo off
2 if exist index.sql del index.sql
3 dir *.sql /B /O N >> index.tmp
4 dir *.pks /B /O N >> index.tmp
5 dir *.pkb /B /O N >> index.tmp
6 dir *.txt /B /O N >> index.tmp
7 for /F %%i in (index.tmp) do echo @@%%i >> index.sql
8 del index.tmp
9 exit

 

 

 

 

posted @ 2013-01-18 20:49  FangwenYu  阅读(6647)  评论(0编辑  收藏  举报