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

Повтаряне на една и съща променлива за свързване многократно при използване на динамичната SQL структура OPEN...FOR в Oracle PL/SQL

Трябва да включите параметъра два пъти в клаузата USING:

 OPEN emp_cv FOR sql_stmt USING my_job, my_job;

Ето вашия пример, но опростен:

DECLARE
   TYPE EmpCurTyp IS REF CURSOR;
   emp_cv   EmpCurTyp;
   emp_rec  varchar2(10);
   sql_stmt VARCHAR2(200);
   my_job   VARCHAR2(15) := 'X';
BEGIN

   OPEN emp_cv FOR 'select * from dual where dummy = :j or dummy = :j' 
    USING my_job, my_job;
   LOOP
      FETCH emp_cv INTO emp_rec;
      EXIT WHEN emp_cv%NOTFOUND;
   END LOOP;
   CLOSE emp_cv;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Потърсете двата града в STATION с най-краткото и най-дългото име на CITY,

  2. SQL мониторинг в SQL Developer

  3. Съпоставяне без значение на акцентите и малките букви в Oracle с LIKE

  4. Функция ROUND(дата) в Oracle

  5. Грешка System.Data.OracleClient изисква клиентски софтуер на Oracle версия 8.1.7 или по-нова, когато инсталира настройка