我們都知道在9i之前,要想獲得建表和索引的語句是一件很麻煩的事。我們可以通過export with rows=no來得到,但它的輸出因為格式的問題并不能直接拿來用。而另一種方法就是寫復雜的腳本來查詢數(shù)據(jù)字典,但這對于一稍微復雜的對象,如IOT和嵌套表等,還是無法查到。
大荔網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司。
從數(shù)據(jù)字典中獲得DDL語句是經(jīng)常要用的,特別是在系統(tǒng)升級/重建的時候。在Oracle 9i中,我們可以直接通過執(zhí)行dbms_metadata從數(shù)據(jù)字典中查處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 0set long 90000set feedback offset 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來確定各表之間的順序,不再詳述。
建表方法:
(1)在cmd里邊更具需要進行創(chuàng)建
(2)在sql developer中進行創(chuàng)建,而對于在可視化界面sqldeveloper中創(chuàng)建時,也有兩種方式,即一種是使用命令直接進行創(chuàng)建,另外一種是使用可視化界面按鈕進行點擊創(chuàng)建
下面就是創(chuàng)建的具體過程:
(1)首先我們進行數(shù)據(jù)的連接,在SQLdeveloper中進行操作,在使用sqldeveloper時需要下載sqldeveloper,點擊此處可下載:下載sqldeveloper,下載安裝之后,打開sqldeveloper軟件,然后點擊左上角的綠色的“+”,就會彈出如下圖所示對話框,(在設置的時候首先需要對賬戶解鎖,首次登陸最好使用管理員已解鎖賬號進行登錄,登錄方式與此類似)然后進行設置
(2)在連接成功之后我們能夠看到如下所示界面
(3)開始創(chuàng)建表,我們進行創(chuàng)建一個有關新聞信息的簡單表,其中包含信息如下所示:
(4)下面進行表的創(chuàng)建:左鍵點擊要建表的數(shù)據(jù)庫連接名打開,在“表(已過濾)”選項進行右鍵單擊選擇“新建表”,然后出現(xiàn)新建表對話框,具體步驟如下圖所示:
(5)接著在彈出的對話框中進行設置表格式,具體步驟如下所示,對于需要添加字符的字段雙擊修改即可,然后進行保存:
(6)保存完之后,可在右側看到如下所示表樣:
(7)接這就讓我們來進行數(shù)據(jù)的插入,如下代碼所示:Insert into newmessage values( 1,1,1,1,'蘇姑娘的新聞管理系統(tǒng)網(wǎng)站開始運營了','今天是公歷2016年5月16日,星期一,蘇姑娘的網(wǎng)站正式開始運營,其中,豐富的題材將是本網(wǎng)站的亮點', '含有很多好文章','蘇姑娘','蘇姑娘','admin',1,'2016年5月16日星期一',100,1,1);select * from newmessage; 插入后界面如下所示:
我們都知道oracle數(shù)據(jù)庫是以表的方式來管理數(shù)據(jù),所有的數(shù)據(jù)都是存放在表中的,如果我們沒有創(chuàng)建表的話,數(shù)據(jù)是不能直接放在數(shù)據(jù)庫中的,那么,我們該怎么在oracle中創(chuàng)建表呢?
我們可以使用create table語句在oracle中創(chuàng)建表,創(chuàng)建表的具體語法為:create table tablename (columnname datatype);其中tablename為我們要創(chuàng)建的表的名字,columnname為我們要創(chuàng)建的表中的列的名字,datatype表示列的數(shù)據(jù)類型以及長度,這里要注意的是,我們在創(chuàng)建表的時候必須要指定表的唯一的名字,以及列的唯一名字,否則數(shù)據(jù)庫就不知道是怎么回事的。
分享名稱:oracle如何建參照表,oracle 建表
分享地址:http://jinyejixie.com/article30/dssicso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站制作、全網(wǎng)營銷推廣、面包屑導航
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)