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

Oracle SEQUENCE.Currval sự cố trong CodeIgniter

Có một cách để nhận giá trị tự động được gán cho một cột:đó là mệnh đề RETURNING.

Vì vậy, đây là trình tự của tôi:

SQL> select emp_seq.currval from dual
  2  /

   CURRVAL
----------
      8140

SQL>

Tôi sẽ sử dụng nó trong câu lệnh INSERT:

SQL> var seqval number
SQL> insert into emp
  2  (empno, ename, deptno, sal, job)
  3  values
  4      (emp_seq.nextval, 'JELLEMA', 50, 4575, 'PAINTER')
  5  returning empno into :seqval
  6  /

1 row created.

SQL>

Tôi đã trả lại EMPNO thành một biến SQL * Plus mà tôi có thể in và nó có cùng giá trị với CURRVAL:

SQL> print :seqval

    SEQVAL
----------
      8141

SQL> select emp_seq.currval from dual
  2  /

   CURRVAL
----------
      8141

SQL>

Câu hỏi tiếp theo của bạn là "CodeIgniter có hỗ trợ RETURNING sysntax không?" Tôi không biết, nhưng tôi nghi ngờ là không. Hầu hết các khuôn khổ không phải của Oracle đều không.

Luôn có tùy chọn để gói câu lệnh INSERT trong một thủ tục được lưu trữ, nhưng đó là một quyết định kiến ​​trúc mà nhiều người không thích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo sha1-hash của một hàng trong Oracle

  2. Có cách nào để chọn một số hàng bằng cách sử dụng các tham số không?

  3. Ngoại lệ ORA-08103:đối tượng không còn tồn tại khi sử dụng setfetchsize của Hibernate

  4. Lấy giá trị từ 3 bảng

  5. Cho phép người dùng chọn từ một bảng