SQL> create table dept(deptno number,dname varchar2(10));
Table created.
SQL> CREATE OR REPLACE PROCEDURE add_dept(p_dept_id IN NUMBER,
2 p_dept_name IN VARCHAR2) IS
3 BEGIN
4 INSERT INTO dept (deptno, dname) VALUES (p_dept_id, p_dept_name);
5 DBMS_OUTPUT.PUT_LINE(' Inserted ' || SQL%ROWCOUNT || ' row ');
6 commit;
7 END;
8 /
Procedure created.
SQL> set serveroutput on
SQL> exec add_dept(1,'wang');
Inserted 1 row
PL/SQL procedure successfully completed.
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2018-04-25 19:56:45
SQL> select sysdate from dual;
SYSDATE
-------------------
2018-04-25 19:56:54
--改变表dept定义,ddl操作
SQL> alter table dept add (salary number);
Table altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2018-04-25 20:01:26
--再次执行存过
SQL> exec add_dept(2,'zhang');
Inserted 1 row
PL/SQL procedure successfully completed.
--查询表和存过的ddl操作时间及状态

发现表的ddl操作并未使存过实现,二者的状态依然为valid,且表ddl后执行存过依然成功,没有报错!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31397003/viewspace-2156574/
,如需转载,请注明出处,否则将追究法律责任。