现在oracle已经正常使用,备份出来再恢复会自己建立相应的数据表,这些建表的语句怎么截出来, 是不是dbms_metadata下的DDL这里显示的语句啊?

解决方案 »

  1.   

    CREATE OR REPLACE Monitor_ddl
    AFTER DDL ON SCHEMA
    DECLARE
        sql_text ora_name_list_t;
        i INTEGER;
        state_sql varchar2(4000);
    BEGIN
        FOR i IN 1..ora_sql_txt(sql_text) LOOP
            state_sql := state_sql||sql_text(i);
        END LOOP;    state_sql :=substrb(state_sql,1,4000);
        dbms_output.put_line(state_sql)
    EXCEPTION
        WHEN OTHERS THEN
            NULL;
    END;
      

  2.   

    最好把state_sql 存在一个表里面,这样比较容易观察!
      

  3.   

    这些建表语句老提示找不到表达式,帮我吼吼
    CREATE UNIQUE INDEX "ZTZC_AID"."SYS_IL0000103821C00014$$" ON "ZTZC_AID"."GD_BILLAUDIT_H_DEC_TEMP" (
      PCTFREE 10 INITRANS 2 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "ZTZC_AID"
      PARALLEL (DEGREE 0 INSTANCES 0)我是把一个表空间的建表语句复制出来,删了原来的表,改了语句里的表空间,然后执行。