小さなテクニックの管理パッケージ、ストレージ・プロシージャなどのスクリプト
1519 ワード
[size=x-small;]会社のサーバーの上で多くの古い従业员の书くストレージの过程とかばんなどがあるため、私はcopyを下りて学习したいと思って、しかしこれらのかばんを1つ1つハードディスクの中に置くのはいつも1件のとてもさわやかな事ではありませんて、だから私はORACLEの1つの表を使って管理することができるかどうかを考えて、次は私の午后の学习の道を始めて、もちろんその中で会社の同僚の强さに感谢して私に1つの対象の定义のコードの関数DBMSを得ましたMETADATE.GET_DDL().次に、テーブルの構造、ストレージ・プロシージャを貼り付けましょう.[/size]テーブル構造:
ユーザー内のすべてのパッケージ・スクリプトのストアド・プロシージャを取得します.
-- Create table
create table SCRIPT_TO_LEARN
(
SOURCE VARCHAR2(20),
SCRIPT_NAME VARCHAR2(30),
SCRIPT_VALUE CLOB
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
ユーザー内のすべてのパッケージ・スクリプトのストアド・プロシージャを取得します.
CREATE OR REPLACE PROCEDURE PROC_GET_PACKAGE_SCRIPT IS
PACKAGE_NAME VARCHAR2(30);
CURSOR CUR_PACKAGE_NAME IS
SELECT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'PACKAGE BODY';
BEGIN
OPEN CUR_PACKAGE_NAME;
LOOP
FETCH CUR_PACKAGE_NAME
INTO PACKAGE_NAME;
EXIT WHEN CUR_PACKAGE_NAME%NOTFOUND;
INSERT INTO SCRIPT_TO_LEARN
VALUES
('SOURCE',PACKAGE_NAME, DBMS_METADATA.GET_DDL('PACKAGE', PACKAGE_NAME));
COMMIT;
END LOOP;
CLOSE CUR_PACKAGE_NAME;
END PROC_GET_PACKAGE_SCRIPT;