Gabungan luar tidak berfungsi "seperti yang diharapkan" dalam kasus itu karena Anda telah secara eksplisit memberi tahu Oracle bahwa Anda hanya menginginkan data jika kriteria pada tabel itu cocok. Dalam skenario itu, gabungan luar menjadi tidak berguna.
Solusi
INSERT INTO account_type_standard
(account_type_Standard_id, tax_status_id, recipient_id)
VALUES(
(SELECT account_type_standard_seq.nextval FROM DUAL),
(SELECT tax_status_id FROM tax_status WHERE tax_status_code = ?),
(SELECT recipient_id FROM recipient WHERE recipient_code = ?)
)
[Sunting]Jika Anda mengharapkan beberapa baris dari sub-pilihan, Anda dapat menambahkan ROWNUM=1 ke masing-masing di mana klausa OR menggunakan agregat seperti MAX atau MIN. Ini tentu saja bukan solusi terbaik untuk semua kasus.
[Sunting] Per komentar,
(SELECT account_type_standard_seq.nextval FROM DUAL),
bisa saja
account_type_standard_seq.nextval,