sql >> Database >  >> RDS >> Oracle

IMMEDIATE UITVOEREN gebruiken met meerdere dezelfde bindargumenten

Er is "speciaal" gedrag in Oracle:Herhaalde tijdelijke aanduiding-namen in dynamische SQL Verklaringen

In een Anoniem Blok- of CALL-instructie is het niet verplicht om de bindwaarden te herhalen als de namen gelijk zijn. Bijvoorbeeld dit Anoniem Blokkeren werkt:

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;
/

Maar dit EXECUTE IMMEDIATE plsql_block USING a, b; werkt niet binnen een procedure .



  1. MySQL - gegevens uit een andere tabel invoegen, samengevoegd met constanten

  2. PHP PDO Mysql Prestaties invoegen

  3. Gelijk aan PostgreSQL array() / array_to_string() functies in Oracle 9i

  4. MySQL:Er is iets mis met zoeken in volledige tekst - Geeft GEEN resultaten