程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle導出SQL腳本的spool實現

Oracle導出SQL腳本的spool實現

編輯:Oracle數據庫基礎

下面介紹Oracle導出SQL腳本的實現方法。本方法使用spool。

a. 獲取單個的建表和建索引的語法

  1. set heading off;   
  2. set echo off;   
  3. Set pages 999;   
  4. set long 90000;   
  5.      
  6. spool DEPT.sql   
  7. select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT'from dual;    
  8. select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT'from dual;   
  9. spool off;   
  10.     

b.獲取一個SCHEMA下的所有建表和建索引的語法,以scott為例:

  1. set pagesize 0   
  2. set long 90000   
  3.     
  4. set feedback off   
  5.     
  6. set echo off    
  7. spool scott_schema.sql    
  8. connect scott/tiger;   
  9. SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)   
  10.       FROM USER_TABLES u;   
  11. SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)   
  12.       FROM USER_INDEXES u;   
  13. spool off;   
  14.      

c.    獲取某個SCHEMA的建全部存儲過程的語法 

  1. connect brucelau /brucelau;   
  2.     
  3. spool procedures.sql   
  4.     
  5. select   
  6.     DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)   
  7. from   
  8.     user_objects u   
  9.     
  10. where   
  11.     object_type = 'PROCEDURE';   
  12.     
  13. spool off;   
  14.     

另:

  1. dbms_metadata.get_ddl('TABLE','TAB1','USER1')   

三個參數中,第一個指定導出DDL定義的對象類型(此例中為表類型),第二個是對象名(此例中即表名),第三個是對象所在的用戶名。

要自己寫程序進行Oracle導出SQL腳本,執行一段SQL,讓SQL查詢結果就是我們想要的SQL腳本:

如下:

  1. select   
  2.          'INSERT INTO B_STATTEMPLATE ( N_ID,C_NAME, C_KBH, N_PRINT, N_TYPE, N_APP, N_VALID ) ' 
  3.          || 'Values (' || To_Char(N_ID) ||',''' || C_NAME || ''', ''' || C_KBH || ''', '   
  4.          || To_Char( N_PRINT ) || ', ' || To_Char( N_TYPE ) || ', ' || '0, 0 );' 
  5.  from b_stattemplate  
  6.  

將查詢結果保存起來就可以了!

Oracle導出SQL腳本這樣就實現了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved