我有许多代码值表,其中包含一个代码和一个带有 Long id 的描述。
我现在想为引用许多代码的帐户类型创建一个条目,所以我有这样的东西:
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 可以为空,因此 ? 替换值可以为空。当然,隐式连接不会返回一行,因此不会将一行插入到我的表中。
我试过在 ? 在 r.recipient_id 上。
我试图在 r.recipient_code = 上强制外部连接?通过添加 (+),但它不是显式连接,因此 Oracle 仍然没有添加另一行。
有人知道这样做的方法吗?
我显然可以修改语句,以便我在外部查找接收者 ID,并有一个 ? 而不是 r.recipient_id,并且根本不从收件人表中选择,但我更愿意在 1 个 SQL 语句中完成所有这些操作。