Warum schlägt die letzte PL / SQL-Anweisung mit dbms_assert.enquote_literal fehl?

9

Die ersten und zweiten "put_line" -Anweisungen im folgenden PL / SQL-Block sind erfolgreich, aber der letzte schlägt fehl. Warum? Könnte es ein Fehler sein?

%Vor%

Der Fehler ist:

%Vor%

Irgendeine Idee?

    
RGO 20.08.2015, 12:08
quelle

2 Antworten

1

Ich kann Ihnen nicht sagen, warum das passiert, aber Sie können versuchen, wie unten beschrieben:

%Vor%     
Vinish Kapoor 20.08.2015 13:22
quelle
1

es ist auf erwähnt Ссылка das When using ENQUOTE_LITERAL, remember to escape single quotes in the input. aber nicht sehr gut erklärt.

Bei Oracle-Dokumenten Ссылка

%Vor%

Diese Frage ist ein gutes Beispiel dafür, dass ENQUOTE_LITERAL keine Saiten abbildet, die bereits zitiert sind. Aber was immer oben erwähnt wird, beschränkt uns nur auf ENQUOTE_LITERAL.So, was ist die Lösung dafür. Als @Vinish Kapoor macht einen Trick in seiner Antwort, die Sie sehen können. Im Falle von Einschränkungen können wir die Zeichenfolge in ein anderes Muster umwandeln und es wieder in das normale ersetzen. Du kannst unten auch

verwenden %Vor%

oder dieses

%Vor%

weil führende und nachfolgende einzelne qoutes Probleme verursachen, können wir sie in # oder ~ umwandeln und nachdem enquote_literal ihre Arbeit erledigt hat, können wir sie wieder in einzelne qoutes ersetzen.

    
Shravan Yadav 20.08.2015 13:53
quelle

Tags und Links