sqlplus中的脚本无法执行多个脚本

时间:2017-08-28 20:47:21

标签: windows oracle sqlplus

我正在编写脚本( 000-Install.sql )来执行多个sql脚本( 001-sys.tab sqlplus控制台中 002-enca.tab 等)。

首先,我只添加两个脚本:

-- 000-Install.sql
spool upgradeSP1Ora.log

start 001-sys.tab;
start 002-enca.tab;

commit;

此处包含脚本的内容:

-- 001-sys.tab
select * from empr;
/


-- start 002-enca.tab
select * from dte_enca_docu;
/

但由于某种原因,执行提示类似于:

CODI_EMPR NOMB_EMPR                                GIR
---------- ---------------------------------------- ---
DIRE_EMPR                                      CODI_COM CODI_CIU  RUTT_EMPR
-------------------------------------------------- -------- -------- -------
D CODI_RAMO    NFAN_EMPR                                CODI_PERS
- ------------ ---------------------------------------- ----------------
 EMPR_CODG EMPR_NOMB                                FONO_EMPR
---------- ---------------------------------------- --------------------
 RUTT_REPL D NOMB_REPL                       CAC MUT  POMU_EMPR  POCA_EMPR
---------- - ----------------------------------- --- --- ---------- -------
FECA_EMP FEMU_EMP CIN CUEN_EMPR    CAJ COLOR_EMPR      LOGO_EMPR
-------- -------- --- ------------ --- --------------- ---------------
CODI_EMEX                      CLAV_ENCR
------------------------------ ------------------------------
ASUN_FACT_EMPR
---------------------------------------------------------------------------
TEXT_FACT_EMPR
----------------------------------------------------------------------------
385

第二个脚本( start 002-enca.tab )永远不会被执行。

问题是我的脚本文件的执行没有正确完成(至少它看起来像这样),这阻止了我的第二个脚本正在运行。

注意:如果我按输入,则 385 的数字加1,如果我按 CTRL + c 执行被取消。

1 个答案:

答案 0 :(得分:1)

尝试以下脚本内容:

  • 000-Install.sql

    set termout off
    spool upgradeSP1Ora.log
    
    @ 001-sys.tab;
    @ 002-enca.tab;
    
    spool off
    commit;
    exit;
    
  • 001-sys.tab

    select * from empr;
    
  • 002-enca.tab

    select * from dte_enca_docu;
    

执行SQL * Plus:

sqlplus -l -s user/pass@tnsname @ 000-Install