Oracle-PLSQL-Einstellung einen cursor aus einer variable

Im neuen Cursor in Oracle. Ich habe ein Stück von SQL enthalten ist, die in eine variable. Ich will öffnen einen cursor, mit diesem sql. Wie mache ich das? Scheint einfach, aber alle Beispiele, die ich finden hab nur die sql eingegeben, die direkt unterhalb der "open cursor_name für" Anweisung.

Hier ist, was ich laufen möchte (angenommen ich habe die variable v_sql mit meiner sql-query):

open my_cursor for v_sql;

Oracle nicht mag, obwohl dies. Ich habe auch versucht

open my_cursor for 
  execute immediate v_sql;

Hilfe bitte.

  • Sie sind riskieren einen injection-Angriff...
  • Riskieren, meine Augen. Einladend ist.
  • SQL-Injection ist nur ein Risiko, wenn ganze strings übergeben werden kann, um v_sql. Es ist völlig sicher zu montieren eine SQL-Abfrage innerhalb einer Prozedur.
  • "Oracle nicht mag, dieses aber". Zu vage ist. Wir brauchen mehr details. Bitte beschreiben Sie das beobachtete Verhalten und geben Fehlermeldungen an. Poste auch alle Ihren code sowie ein Beispiel für eine Anweisung. open my_cursor for v_sql; ist die richtige Nutzung, so muss das problem liegen mit den umliegenden code-Kontext, oder die Anweisung, die Sie ausführen.
  • Selbst als parameter, die Sie nicht wissen über die syntax/etc Fehler in dynamischem SQL zur Laufzeit. IIRC, es gibt auch ein Risiko der Umgehung von Berechtigungen (SPRICH: LÖSCHEN) durch die Verwendung von dynamischen SQL.
InformationsquelleAutor Eddieb | 2010-07-27
Schreibe einen Kommentar