Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle SEQUENCE.Masalah Currval di CodeIgniter

Ada cara untuk mendapatkan nilai yang ditetapkan secara otomatis ke kolom:ini adalah klausa RETURNING.

Jadi, inilah urutan saya:

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Saya akan menggunakannya dalam pernyataan 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>

Saya mengembalikan EMPNO menjadi variabel SQL*Plus yang dapat saya cetak, dan memiliki nilai yang sama dengan CURRVAL:

SQL> print :seqval

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

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Pertanyaan Anda selanjutnya adalah, "apakah CodeIgniter mendukung sysntax RETURNING?" Saya tidak tahu, tapi saya curiga tidak. Sebagian besar kerangka kerja non-Oracle tidak.

Selalu ada opsi untuk membungkus pernyataan INSERT dalam prosedur tersimpan, tetapi itu adalah keputusan arsitektur yang tidak disukai banyak orang.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Membuat Kursor Ref Lemah PL/SQL Di Database Oracle

  2. Batasan unik Oracle dan indeks unik

  3. SQLPlus varchar2 mengeluarkan spasi putih

  4. Kumpulkan statistik pada Indeks atau jatuhkan buat?

  5. Cara cepat untuk menghasilkan string gabungan di Oracle