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

Viết câu lệnh chèn với mệnh đề select trả về id trong oracle

Điều đó sẽ không hoạt động. RETURNING không thể sử dụng mệnh đề theo cách bạn đang làm, tức là

insert into t (id, my_pk)
select some_id, your_function from ...
returning into v_output

nhưng sẽ hoạt động nếu bạn chèn VALUES , với tư cách là

insert into t
values (id, your_function)
returning my_pk into v_output

Điều đó có nghĩa là bạn sẽ phải viết lại mã đó hoặc xem xét cách giải quyết khác được mô tả trong quay lại với insert..select bài báo (được viết bởi Adrian Billington).

BTW, một chuỗi Oracle thông thường sẽ không phù hợp với mục đích của bạn sao? Sẽ không thiếu, nhưng sẽ đơn giản và hiệu quả. Lưu ý đến hiệu suất khi chèn một lượng lớn dữ liệu, sử dụng giải pháp của bạn.

BTW # 2, mục đích của dòng cuối cùng trong hàm của bạn là gì? Bạn không bao giờ sử dụng N_VALUE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa ngoại có thể trống không?

  2. hibernate.jdbc.fetch_size hoặc @QueryHints (@ javax.persistence.QueryHint (name =org.hibernate.fetchSize, value =10)) không hoạt động

  3. Mở hộp thoại phương thức thông qua JavaScript Oracle APEX

  4. Làm thế nào để hủy bỏ một hoạt động Cơ sở dữ liệu đã chạy lâu?

  5. Câu lệnh select oracle sql siêu lập trình