NOT NULL constraints are not visible for object tables
说明
NOT NULL constraints excluded from object table scripts. Steps to reproduce the issue:
Run the script below: CREATE TYPE test_object_t AS OBJECT ( id NUMBER, hiredate DATE, desc_t VARCHAR2 (255), MEMBER FUNCTION f_test RETURN VARCHAR2 ) NOT FINAL /
CREATE OR REPLACE TYPE BODY test_object_t IS MEMBER FUNCTION f_test RETURN VARCHAR2 AS BEGIN RETURN 'V1.0.0'; END; END; /
CREATE TABLE test_objects OF test_object_t NOT SUBSTITUTABLE AT ALL LEVELS ( CONSTRAINT test_objects_pk PRIMARY KEY (id) ) OBJECT ID PRIMARY KEY /
ALTER TABLE test_objects MODIFY (hiredate CONSTRAINT hiredate_nn NOT NULL) /
ALTER TABLE test_objects MODIFY (desc_t CONSTRAINT desc_nn NOT NULL) /
If you run describe test_objects; you see
TABLE test_objects Name Null? Type ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER HIREDATE NOT NULL DATE DESC_T NOT NULL VARCHAR2(255)
notice the not nulls created before with the alter statements for HIREDATE and DESC_T.
The not nulls can be seen in the constrains and column tabs in schema browser. The problem is that Toad does not show this information(not null) in any script anywhere (f4 , schema browser, schema compare or extract dll.)