У меня есть несколько таблиц значений кода, которые содержат код и описание с длинным идентификатором.
Теперь я хочу создать запись для типа учетной записи, которая ссылается на количество кодов, поэтому у меня есть что-то вроде этого:
insert into account_type_standard (account_type_Standard_id,
tax_status_id, recipient_id)
( select account_type_standard_seq.nextval,
ts.tax_status_id, r.recipient_id
from tax_status ts, recipient r
where ts.tax_status_code = ?
and r.recipient_code = ?)
Это извлекает соответствующие значения из таблиц tax_status и получателей, если найдено совпадение для соответствующих кодов. К сожалению, recipient_code имеет значение NULL, и поэтому? значение замены может быть нулевым. Конечно, неявное объединение не возвращает строку, поэтому строка не вставлена в мою таблицу.
Я пробовал использовать NVL? и на r.recipient_id.
Я пытался заставить внешнее соединение на r.recipient_code =? добавив (+), но это не явное соединение, поэтому Oracle по-прежнему не добавляло еще одну строку.
Кто-нибудь знает, как это сделать?
Я могу, очевидно, изменить инструкцию так, чтобы я искал внешний вид получателя извне и имел? вместо r.recipient_id, и вообще не выбирайте из таблицы получателей, но я бы предпочел сделать все это в 1 инструкции SQL.