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