2017-08-04 7 views
0

sqldeveloperコマンドの場合のddifferenceは何ですか?
dbms_metadata.get_ddl( 'TABLE'、 'table_name'、 'owner')をdualから選択します。
は私に結果 UNIXとsqldeveloperのスクリプト作成テーブルが異なる

CREATE TABLE "OWNER"."TABLE_NAME"  
("HENCD" VARCHAR2(4),  
"HCACT" VARCHAR2(12),  
"HETID" VARCHAR2(30),  
"HERID" VARCHAR2(20),  
"HFNCD" VARCHAR2(1),  
"HPSIN" VARCHAR2(2) 
CONSTRAINT "PK_TRANQ_BPSBATCH" PRIMARY KEY   ("HETID", "HFNCD", "FIRM_CUST_IND")  
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS  
STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1  
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)  
TABLESPACE "DAT01" ENABLE  
) SEGMENT CREATION IMMEDIATE  
PCTFREE 20 PCTUSED 80 INITRANS 1 MAXTRANS 255  
NOCOMPRESS LOGGING  
STORAGE(INITIAL 302858240 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1  
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)  
    TABLESPACE "DAT01" "  

しかし、私が見る実際のスクリプトで

を与える:

DROP TABLE table_name 
/ 


CREATE TABLEtable_name( 
hencd       VARCHAR2(4),  
hcact       VARCHAR2(12),  
hetid       VARCHAR2(20),  
herid       VARCHAR2(20),  
hfncd       VARCHAR2(1), 
hpsin       VARCHAR2(1), ) 
GRANT SELECT ON tran_queue_bps_batch TO public  
/ 
GRANT ALL ON tran_queue_bps_batch TO dtebatch  
/ 

-- Indexes for TRAN_QUEUE_BPS_BATCH  
CREATE INDEX indname1 ON table_name (intact_tag, hasdt)  
TABLESPACE idx01  
/ 
私がドロップすると、追加の列を持つテーブルを再作成するために使用する必要が1

+1

DBMS_METADATAは、データ・ディクショナリから既存のデータベース・オブジェクトのDDL文を生成します。値がデフォルトであるかカスタムであるかを判断できないため、生成するSQLはより規範的です。他のスクリプトは手書きです。どのバージョンを使用するかはあなた次第です。 – APC

+0

UNIX版を使用すると、DBMS_METADATAはsqldeveloperの結果を返しますか? – SamOl

+1

あなたがしたいことが列を追加するならば、 'alter table table_name add new_column number'か何かをするスクリプトを書いてください。あなたがする必要がない場合は、テーブルを落として再作成する意味がありません。 – APC

答えて

0

「追加の列を含む表を削除して再作成するために、どちらを使用する必要がありますか?」

何がやりたいことは何をすべきことは、あなたがする必要がない場合は、テーブルをドロップして再作成して

alter table table_name add new_column number --- or whatever. 

は意味を行うスクリプトを記述している、列を追加している場合。

関連する問題