Как проверить, какие столбцы необходимы для оператора вставки базы данных? - PullRequest
1 голос
/ 20 апреля 2020

Я пытаюсь вставить в таблицу, как любой старый оператор вставки. Это не проблема, но в таблице есть несколько столбцов, примерно на 20. Как таковой, я хотел задать быстрый вопрос. Как проверить, какие столбцы требуются, а какие автоматически генерируются системой или по умолчанию имеют значение NULL. Зная, что я мог бы взять некоторую вставку большой таблицы, как показано ниже:

INSERT INTO TABLE (A1,B2,C3,D4... to Z1000) 
VALUES (1,2,3,4,... to x);

Тогда я мог бы упростить ее до минимума для необходимой вставки + ключевые параметры.

1 Ответ

0 голосов
/ 20 апреля 2020

Чтобы проверить наличие ограничений 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 et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...