2013-10-02 47 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

现在一切正常。