I created a table in SQLDM 23 which generated the following DDL:
CREATE TABLE gtt_test_table (
gttt_id RAW(16) NOT NULL,
code VARCHAR2(80) NULL
)
ORGANIZATION HEAP NOCOMPRESS
NOCACHE
NOPARALLEL
NOROWDEPENDENCIES DISABLE ROW MOVEMENT;
CREATE UNIQUE INDEX gttt_pk_idx ON
gtt_test_table (
gttt_id
ASC );
ALTER TABLE gtt_test_table
ADD CONSTRAINT gttt_pk PRIMARY KEY ( gttt_id ) NOT DEFERRABLE ENABLE VALIDATE;
I used the generated code to create the table in my database (19c).
I then realised that this was intended to be a global temporary table, so I changed the Physical Model definition to show it as "Temporary (Delete Rows)". This generates the following DDL:
CREATE GLOBAL TEMPORARY TABLE gtt_test_table (
gttt_id RAW(16) NOT NULL,
code VARCHAR2(80) NULL
) ON COMMIT DELETE ROWS
NOCACHE NOROWDEPENDENCIES DISABLE ROW MOVEMENT;
CREATE UNIQUE INDEX gttt_pk_idx ON
gtt_test_table (
gttt_id
ASC );
ALTER TABLE gtt_test_table
ADD CONSTRAINT gttt_pk PRIMARY KEY ( gttt_id ) NOT DEFERRABLE ENABLE VALIDATE;
When I try to “Synchronize Data Dictionary” the table is highlighted, etc. and the “Physical Details” section shows that the Source Table has Temporary ‘YES’ and Target Table has Temporary ‘NO’. However, there are no table DDL commands generated by the “DDL Preview”.
I was expecting to see either some DROP and CREATE statements OR some error message/warning to say that the synchronisation required table recreation.
Have I missed a check-box somewhere or is this a bug?