我试图像任何旧的Insert语句一样插入表中。这不是问题,但是表中有大约20列的列。因此,我想问一个简单的问题。如何检查哪些列是必需的,哪些列是系统自动生成的,或者默认为NULL。知道我可以像下面那样插入一些大表:
INSERT INTO TABLE (A1,B2,C3,D4... to Z1000)
VALUES (1,2,3,4,... to x);
然后我可以将其简化为所需的insert +关键参数的最低要求。
答案 0 :(得分:0)
要检查NOT NULL约束,可以向ALL_TAB_COLS
查询NULLABLE
:
例如,下面的查询将显示所有可为空的列。同样,您可以过滤为NULLABLE = 'N'
以获取不为空的列。
SELECT column_name
FROM all_tab_cols
WHERE owner = 'HR'
AND table_name = 'EMPLOYEES'
AND NULLABLE ='Y';
COLUMN_NAME
---------------
FIRST_NAME
PHONE_NUMBER
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
6 rows selected.
对于自动生成的IDENTITY
列,您可以查询ALL_TAB_IDENTITY_COLS
。
SELECT column_name,
generation_type,
identity_options
FROM all_tab_identity_cols
WHERE owner = 'OWNER'
AND table_name = 'TABLE_NAME';
要快速引用对象描述,还可以使用SQL Plus DESCRIBE
命令。它还将在支持sqlplus命令的大多数工具(例如SQL Developer等)上运行。