Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Problem Oracle SEQUENCE.Currval w CodeIgniter

Istnieje sposób na automatyczne przypisanie wartości do kolumny:jest to klauzula RETURNING.

Oto moja sekwencja:

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Użyję go w instrukcji 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>

Zwróciłem EMPNO do zmiennej SQL*Plus, którą mogę wydrukować i ma taką samą wartość jak CURRVAL:

SQL> print :seqval

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

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Twoje następne pytanie brzmi:"czy CodeIgniter obsługuje składnię RETURNING?" Nie mam pojęcia, ale podejrzewam, że nie. Większość frameworków innych niż Oracle tego nie robi.

Zawsze istnieje możliwość zawinięcia instrukcji INSERT w procedurę składowaną, ale jest to decyzja architektoniczna, której wielu ludzi nie lubi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem podczas porównywania wyniku to_char(myDate, 'DAY') do ciągu znaków

  2. Czy odwołania cykliczne są dopuszczalne w bazie danych?

  3. Parametry połączenia Oracle ze znakiem @ w haśle

  4. Od XML do listy ścieżek w Oracle 12c

  5. Wyciąg Oracle z wartości obcinania xml