SQL包
--一个程序包由两部分组成:包定义和包体。
----其中包定义部分声明包内数据类型、变量、常量、游标、子程序和函数等元素,这些元素为包的共有元素。
--包主体则定义了包定义部分的具体实现。
---向包里放入程序
----创建一个包,包定义/包头
--包分为包头和包体。一层一个包。
--包的命名:PKG_包名
--创建包头
--语法:
CREATE OR REPLACE PACKAGE pkg_包名---包的名称 AS ---没有begin END;
-------------------------
----创建一个包体
CREATE OR REPLACE PACKAGE BODY pkg_包名---包体名称要和包头保持一致 AS ---没有begin END;
----运行包里的程序
BEGIN pkg_dw.SP_DW_STORE;--用包名称加上.再加上存储过程名或者自定义函数名来运行 END;
例子:
--创建包头 CREATE OR REPLACE PACKAGE pkg_dw---包的名称 AS ---没有begin PROCEDURE SP_LOG(P_SP_NAME VARCHAR2,P_STEP_ID NUMBER,P_REMARK VARCHAR2);--存储过程名1 PROCEDURE SP_DW_ROOM_DETAIL; --存储过程名2 END; --创建包体 CREATE OR REPLACE PACKAGE BODY pkg_dw---包体名称要和包头保持一致 (存储过程1) AS ---没有begin PROCEDURE SP_LOG(P_SP_NAME VARCHAR2,P_STEP_ID NUMBER,P_REMARK VARCHAR2) AS BEGIN INSERT INTO log_record (log_id, sp_name, step_id, finish_time, remark) VALUES (S_TEST.NEXTVAL,P_SP_NAME,P_STEP_ID,SYSDATE,P_REMARK); COMMIT; END; ------------------------------------ PROCEDURE SP_DW_ROOM_DETAIL AS --存储过程2 BEGIN DELETE FROM DW_ROOM_DETAIL; (更新过程) COMMIT; END; END;