EXP实现不了,一定要使用EXP吗

解决方案 »

  1.   

    如果问一下,EXP能导出些什么东东呢?
      

  2.   

    可以把存储过程语句取出来,重建。
    用pl/sql developer工具很方便
    或者用以下存储过程写入指定的txt文件
    先修改或添加init.ora的UTL_FILE_DIR参数
    例如:
    utl_file_dir=G:\oracle\temp    //保存文本的路径为G:\oracle\temp
    此过程将用户FILE_OWNER的过程FILE_NAME的代码保存到G:\oracle\temp\TEXT.TXT中
    create or replace procedure PRO_TO_TXT(FILE_OWNER VARCHAR2,FILE_NAME VARCHAR2)
    is
       file_handle  utl_file.file_type;
       STOR_TEXT  VARCHAR2(4000);
       N NUMBER;
    I NUMBER;
    begin
    I:=1;
        SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER=FILE_OWNER AND  NAME=FILE_NAME AND TYPE='PROCEDURE';
    file_handle:=utl_file.fopen('G:\oracle\temp','test.txt','a');
    utl_file.put_line(file_handle,'PROCEDURE NAME:'||FILE_NAME);
    WHILE I<=N LOOP
        SELECT TEXT  INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER=FILE_OWNER 
    AND NAME=FILE_NAME AND TYPE='PROCEDURE' AND LINE= I;
        I:=I+1;
        utl_file.put_line(file_handle,stor_text);
    END LOOP;
        utl_file.fclose(file_handle);
    commit;
    end PRO_TO_TXT;
    /