sql >> Database teknologi >  >> RDS >> Oracle

ved at bruge EXECUTE IMMEDIATE med flere samme bindeargumenter

Der er "særlig" adfærd i Oracle:Gentagne pladsholdernavne i dynamisk SQL Erklæringer

I en anonym blok- eller CALL-erklæring er det ikke nødvendigt at gentage bindeværdierne, hvis navnene er ens. For eksempel denne anonyme blok virker:

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

Men denne EXECUTE IMMEDIATE plsql_block USING a, b; virker ikke inde i en procedure .



  1. Hvordan får man SQL Server til at finde et login, der matcher det angivne navn?

  2. Fejl ved Update Join

  3. Mysql formater en streng som XXXXXXXXXXXX til XX-XX-XXXXXXX-X

  4. Hvordan sender jeg værdi til en lagret procedureparameter i OLE DB-kildekomponent?