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
?
DBMS_METADATAは、データ・ディクショナリから既存のデータベース・オブジェクトのDDL文を生成します。値がデフォルトであるかカスタムであるかを判断できないため、生成するSQLはより規範的です。他のスクリプトは手書きです。どのバージョンを使用するかはあなた次第です。 – APC
UNIX版を使用すると、DBMS_METADATAはsqldeveloperの結果を返しますか? – SamOl
あなたがしたいことが列を追加するならば、 'alter table table_name add new_column number'か何かをするスクリプトを書いてください。あなたがする必要がない場合は、テーブルを落として再作成する意味がありません。 – APC