詭異的 "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

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM