2016-11-23 6 views
1

Ich habe gerade Schwierigkeiten, einen Wert in eine varchar2-Spalte einer Oracle-Datenbank einzufügen. Der Wert ist (und voller Sonderzeichen ....):Oracle Sonderzeichen und Funktionsnamen einfügen

'Data\QVD\QVD_'& replace(v_sc_val_ExecutionEnvironment, chr(39),'') &'\VTB_MOD1_RESULT\' 

(Es ist ein QlikView Formular, die in der Datenbank gespeichert werden sollen Danach kann ich es mit QlikView extrahieren und bewerten, aber ich brauche die genaue. gegebenes Format.)

Ich habe schon versucht, alle 'mit' 'und so weiter zu entkommen, aber es hat bisher nicht funktioniert. Definieren hat nicht funktioniert.

Ich habe auch gefunden: https://docs.oracle.com/cd/B10501_01/text.920/a96518/cqspcl.htm aber habe dort keine Lösung gefunden.

Hoffentlich hatte jemand die gleichen Probleme oder kennt die Lösung.

Vielen Dank im Voraus!

+0

Was meinen Sie mit "es hat bisher nicht funktioniert"? Was fügst du ein (zeige uns dein Kommando) und was bekommst du? –

+0

Ich weiß nichts über QlikView, aber jede anständige Technologie mit Datenbankunterstützung sollte Anweisungen oder zumindest eine eingebaute Escape-Funktion enthalten. Du kannst es nicht manuell machen, es wäre verrückt. –

Antwort

1

Vielleicht können Sie versuchen, die q quote operator:

insert into yourTable(c) 
values (q'['Data\QVD\QVD_'& replace(v_sc_val_ExecutionEnvironment, chr(39),'') &'\VTB_MOD1_RESULT\']'). 

Auf diese Weise sollten Sie kein Entkommen brauchen und der Text sollte genau eingefügt werden, wie Sie es eingegeben haben.

+0

Vielen Dank! Das löste mein Problem. Siehst du irgendwelche Nachteile, wenn du dies für einen String-Einsatz verwendest? – Salfii

+0

Oracle gibt keine Einschränkung diesbezüglich; Ich glaube, das ist der beste Weg, Strings mit Anführungszeichen und Sonderzeichen zu behandeln. – Aleksej

+0

Danke nochmal, du hast mir sehr geholfen. – Salfii

Verwandte Themen