2013-10-02 74 views
0

我有一個運行在SQL Developer中完全沒有下面的代碼,它1分鐘總運行時間內完成:查詢不是在運行SQL * Plus的

SET TERM ON 
SET ECHO ON 
DECLARE 
    max_date date; 
    max_id number; 
BEGIN 
    select max(LOG_ID) into max_id from RUN_LOG; 
    select max(TRAN_DT) into max_date from DATA_TX; 
    insert into RUN_LOG 
    values(
     max_id + 1  /* Log ID */ 
     ,1    /* Chain ID */ 
     ,1    /* Job ID */ 
     ,sysdate   /* Start Time-stamp */ 
     ,sysdate   /* End Time-stamp */ 
     ,1    /* Run Result */ 
     ,max_date   /* Processing Date */ 
    ); 
    COMMIT; 
END; 
/

當我把這個變成一個.SQL文件和在SQL * Plus中執行它永遠不會結束。

批調用如下:

sqlplus user/[email protected] @set_date.sql 

缺少什麼我在這裏?

感謝,

+0

您是否用'LF'字符終止了SQL文件的最後一行? –

+0

你可以用sql plus交互式運行它嗎? –

+1

你似乎沒有'-s'標誌,但是你可能在'login.sql'中設置了'feedback off'?或者你只是在等待它回到命令提示符 - 這不會在文件中沒有「退出」的情況下發生。在SQL Developer中可能有未提交的插入內容? (您是不是使用序列作爲日誌ID的原因?) –

回答

0

那家引起了我的.sql不控制返回給我的.bat文件我的Oracle會話某種錯誤

反正,我還修改了電話如下:

exit | sqlplus -S用戶/密碼@ database @ set_date.sql

現在一切正常。