ITPub博客

首页 > 数据库 > Oracle > procedure和functon后ddl操作实现

procedure和functon后ddl操作实现

原创 Oracle 作者:不一样的天空w 时间:2018-06-23 23:59:16 0 删除 编辑
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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-09-22

  • 博文量
    916
  • 访问量
    1400299