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

Oracle:Jak używać zmiennych lokalnych procedury dla instrukcji EXECUTE IMMEDIATE w procedurach

Zmienną lokalną z procedury można powiązać z symbolem zastępczym zapytania za pomocą USING [OUT][IN] klauzula:

  local_id number;
BEGIN
  EXECUTE IMMEDIATE 
       'SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into :local_id FROM dual'
     USING OUT local_id;

Ale dla tego zapytania nie potrzebujesz execute immediate , po prostu zrób:

  local_id number;
BEGIN
  SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into local_id FROM dual;

w Oracle 11g możesz to zrobić za pomocą operatora przypisania:

  local_id number;
BEGIN
  local_id := SYS_LOCAL_ID_SERIAL_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. Zmiana definicji TYP w Oracle 21c

  2. Wyjaśnij plan kosztowy Punkt bólu

  3. Tworzenie wyzwalacza w Oracle Express

  4. Jak rejestrować/śledzić wywołania procedury składowanej Oracle z wartościami parametrów?

  5. Błąd wyzwalacza SQL - nieprawidłowy wyzwalacz