是否和dbms_output包一樣要先設置可用狀態?:
..........................................
dbms_output.enable;
dbms_output.put_line('vvv');
.............................

解决方案 »

  1.   

    应该不是吧;
    在语句块里如:
    begin
      DBMS_LOCK.sleep(10);
    end;
    又可以运行
      

  2.   

    15:25:49 SQL> conn bktest/...@bi as sysdba
    已连接。
    15:25:56 SQL> revoke execute on dbms_lock from bktest;撤销成功。已用时间:  00: 00: 00.16
    15:26:11 SQL> conn bktest/aaa111@bi
    已连接。
    15:26:17 SQL> create or replace procedure tes
    15:26:21   2  as
    15:26:21   3  begin
    15:26:21   4    dbms_lock.sleep(5);
    15:26:21   5  end;
    15:26:21   6  /警告: 创建的过程带有编译错误。已用时间:  00: 00: 00.32
    15:26:22 SQL> show err
    PROCEDURE TES 出现错误:
    4/3      PLS-00201: 必须说明标识符 'SYS.DBMS_LOCK'
    4/3      PL/SQL: Statement ignored
    15:26:24 SQL> conn bktest/aaa111@bi as sysdba
    已连接。
    15:26:32 SQL> grant execute on dbms_lock to bktest;授权成功。已用时间:  00: 00: 00.15
    15:26:39 SQL> conn bktest/...@bi
    已连接。
    15:26:45 SQL> create or replace procedure tes
    15:26:48   2  as
    15:26:48   3  begin
    15:26:48   4    dbms_lock.sleep(5);
    15:26:48   5  end;
    15:26:48   6  /过程已创建。已用时间:  00: 00: 00.31
    15:26:49 SQL> exec tes;PL/SQL 过程已成功完成。已用时间:  00: 00: 05.25