小さなテクニックの管理パッケージ、ストレージ・プロシージャなどのスクリプト


[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;