create or replace procedure p 
is               
begin  
    dbms_output.put_line('aaa');
    Exception when others then 
dbms_output.put_line('error');
         commit; 
end;  declare aaa date;    
     begin
      execute immediate 'select sysdate from dual' into aaa  ;
    dbms_output.put_line(aaa);
    p;//调用不成功,不知道为什么?谢谢帮忙了,又没份了 Exception when others then 
dbms_output.put_line('error');
     END;
     

解决方案 »

  1.   

    代码是没有问题的,我这里运行正常。
    如果有问题,检查下: 
    1、PROCEDURE  P 是否编译成功;
    2、尝试将 P 改一下名称。
    CREATE OR REPLACE PROCEDURE P IS
    BEGIN
      DBMS_OUTPUT.PUT_LINE('aaa');
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('error');
        COMMIT;
    END;DECLARE
      AAA DATE;
    BEGIN
      EXECUTE IMMEDIATE 'select sysdate from dual'
        INTO AAA;
      DBMS_OUTPUT.PUT_LINE(AAA);
      P; --//调用不成功,不知道为什么?谢谢帮忙了,又没份了 
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('error');
    END;
      

  2.   

    http://topic.csdn.net/u/20090630/08/66c7be38-f2be-42bf-8be9-111fc20e3ecb.html
    帮忙看下这个问题