Просьба пояснить использование функции NVL
.- это функция nvl, основанная на ненулевом ограничении
Мне нужно вставить значение, 999999, если значение не найдено из SELECT
запроса, но колонке таблицы, где Вставляется значение имеет тип NOT NULL
, и стол, на котором мы делаем запрос на выборку, чтобы получить значение также относится к типу NOT NULL
.
ИСТОЧНИК (используется для получения значений столбцов для загрузки в T_DATA таблицу)
COLUMN_NAME DATA_TYPE NULLABLE COLUMN_ID
SRC_ID NUMBER No 1
T_DATA таблицу (загрузить таблицу)
COLUMN_NAME DATA_TYPE NULLABLE
SRC_ID NUMBER No
INSERT
запроса:
INSERT INTO T_DATA
(select (SELECT NVL(SRC_ID,999999) FROM SOURCE
WHERE SRC_DESC = LTRIM(TABLE_ID)), class_code,line_number,sysdate
from T_VB_DATA);
Поскольку SRC_ID
IN TABLE - NOT NULL
, даже если я использую NVL
функция, она ничего не собирается делать. Итак, могу ли я предположить, что он должен принять значение NULL
?
Столбец, когда он вставлен в таблицу t_data
, не может быть NULL
.
Пожалуйста, не кричите на нас, спасибо ... – Siyual
Если вы запрашиваете таблицу t_vb_data для нулевых значений, вы найдете ее? Кроме того, ваш запрошенный запрос имеет синтаксические ошибки. –