Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Chèn qua Chọn từ nhiều bảng trong đó một bảng có thể không có hàng

Các phép nối Outter không hoạt động "như mong đợi" trong trường hợp đó vì bạn đã nói rõ ràng với Oracle rằng bạn chỉ muốn dữ liệu nếu tiêu chí trên bảng đó khớp. Trong trường hợp đó, liên kết ngoài sẽ vô dụng.

Một công việc xung quanh

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 = ?)
)

[Chỉnh sửa] Nếu bạn muốn có nhiều hàng từ một lựa chọn phụ, bạn có thể thêm ROWNUM =1 vào mỗi mệnh đề where HOẶC sử dụng tổng hợp chẳng hạn như MAX hoặc MIN. Tất nhiên, đây có thể không phải là giải pháp tốt nhất cho mọi trường hợp.

[Chỉnh sửa] Mỗi nhận xét,

  (SELECT account_type_standard_seq.nextval FROM DUAL),

có thể chỉ là

  account_type_standard_seq.nextval,


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Những thay đổi chính về Công nghệ trong E-Business Suite 12.2

  2. PL / SQL có StringTokenizer tương đương với Java không?

  3. Cách bật chế độ nhật ký lưu trữ trong cơ sở dữ liệu Oracle 19c

  4. Hàm HEXTORAW () trong Oracle

  5. Đối chiếu không phân biệt trọng âm và chữ hoa chữ thường trong Oracle với LIKE