国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Oracle 9i輕松取得建表和索引DDL語句

瀏覽:18日期:2023-11-13 10:21:55
我們都知道在9i之前,要想獲得建表和索引的語句是一件很麻煩的事。我們通常的做法都是通過eXPort with rows=no來得到,但它的輸出因為格式的問題并不能直接拿來用。而另一種方法就是寫復雜的腳本來查詢數據字典,但這對于一稍微復雜的對象,如IOT和嵌套表等,還是無法查到。 從數據字典中獲得DDL語句是經常要用的,非凡是在系統升級/重建的時候。在Oracle 9i中,我們可以直接通過執行dbms_metadata從數據字典中查處DDL語句。使用這個功能強大的工具,我們可以獲得單個對象或整個SCHEMA的DDL語句。最好不過的是因為它使用起來很簡單。 1、獲得單個表和索引DDL語句的方法:  set heading off;set echo off; Set pages 999;set long 90000;spool get_single.sqlselect dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual;  select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS') from dual; spool off; 下面是輸出。我們只要把建表/索引語句取出來在后面加個分號就可以直接運行了。  SQL> select dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual; CREATE TABLE 'SHQSYS'.'SZT_PQSO2'  ( 'PQBH' VARCHAR2(32) NOT NULL ENABLE,  'ZJYW' NUMBER(10,0),  'CGSO' NUMBER(10,0) NOT NULL ENABLE, 'SOLS' VARCHAR2(17), 'SORQ' VARCHAR2(8), 'SOWR' VARCHAR2(8), 'SOCL' VARCHAR2(6),  'YWHM' VARCHAR2(10),  'YWLX' VARCHAR2(6) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE 'DATA1'   SQL> select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS') from dual; CREATE INDEX 'SHQSYS'.'INDXX_PQZJYW' ON 'SHQSYS'.'SZT_PQSO2' ('ZJYW') PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)   TABLESPACE 'DATA1' SQL>   SQL> spool off;2、獲得整個SCHEMA DDL語句的方法:  set pagesize 0 set long 90000 set feedback off set echo off  spool get_schema.sql  connect shqsys/shqsys@hawk1; SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;spool off;需要注重的是,當我們的表中有外健(參照約束)時,我們需要判別參照表之間的順序,確保重建時按照合理的順序進行。你可以通過查詢dba_constraints and dba_cons_columns來確定各表之間的順序,不再詳述。
標簽: Oracle 數據庫
主站蜘蛛池模板: 延津县| 崇礼县| 元阳县| 茂名市| 乐清市| 清镇市| 延边| 太保市| 南昌县| 长垣县| 玉龙| 琼结县| 保靖县| 邢台市| 丹江口市| 凉城县| 广德县| 康平县| 富裕县| 大石桥市| 抚宁县| 北票市| 济宁市| 津南区| 彰武县| 瑞昌市| 河北区| 武清区| 桃源县| 城口县| 衢州市| 新昌县| 晴隆县| 元江| 长垣县| 共和县| 时尚| 手机| 井陉县| 长治市| 扎囊县|