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

използвайки EXECUTE IMMEDIATE с множество еднакви аргументи за свързване

Има „специално“ поведение в Oracle:Повтарящи се имена на контейнери в динамичен SQL Изявления

В Anonymous Block или CALL Statement не е необходимо да се повтарят стойностите на свързване, ако имената са равни. Например този Анонимен блок работи:

DECLARE
  a NUMBER := 4;
  b NUMBER := 7;
  plsql_block VARCHAR2(100);
BEGIN
  plsql_block := 'BEGIN calc_stats(:x, :x, :y, :x); END;';
  EXECUTE IMMEDIATE plsql_block USING a, b;  -- calc_stats(a, a, b, a)
END;
/

Но това EXECUTE IMMEDIATE plsql_block USING a, b; не работи вътре в процедура .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle sql - присъединяване с входен параметър

  2. как да получа PL/SQL в SQLFiddle?

  3. Съпоставяне на булево свойство към Oracle с помощта на Entity Framework

  4. plsql блок, за да получите резултата от динамичната sql заявка

  5. Съвместим ли е SYS_GUID() UUID RFC 4122 на Oracle?