Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle:Как да използваме локални променливи на процедура за оператори EXECUTE IMMEDIATE в процедури

Локална променлива от процедурата може да бъде свързана към контейнера за заявка с USING [OUT][IN] клауза:

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

Но за тази заявка не е необходимо execute immediate , просто направете:

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

на Oracle 11g можете да го направите с помощта на оператора за присвояване:

  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. Бавна производителност за факторинг на дълбоко вложени подзаявки (CTE)

  2. Не може да се потвърди, с опция за новалидиране

  3. Динамичен SQL, използващ конфигурационни таблици

  4. къде са DMS клас файловете на Oracle?

  5. Как да създавам индекси с условия в Oracle 12c?