Frage

Ich habe einen SQL-Skript, das ein Paket mit einem Kommentar enthält eine kaufmännische erzeugt (&). Als ich das Drehbuch von SQL Plus laufen, ich bin aufgefordert, mit & beginnt einen Ersatzwert für die Zeichenfolge einzugeben. Wie kann ich diese Funktion deaktivieren, so dass SQL Plus kaufmännischen ignoriert?

War es hilfreich?

Lösung

Dies kann für Sie arbeiten:

set define off

Ansonsten ist das Ampersand muss am Ende eines Strings sein,

'StackOverflow &' || ' you'

EDIT: Ich war Klick glücklich beim Speichern ... Dies wird von einem Blog .

Andere Tipps

Wenn Sie manchmal Substitutionsvariablen verwenden Sie möglicherweise nicht definieren ausschalten möchten. In diesen Fällen können Sie das Und-Zeichen aus seinem numerischen Äquivalent wie in || Chr(38) || umwandeln könnten oder es als ein einzelnes Zeichen wie in || '&' || hängen.

ich mit dem Code aufgelöst unter:

set escape on

und legt eine \ neben & im linken 'value_\&_intert'

Att

Sie können die Sonderzeichen gesetzt, die bei der Ausführung eines Skripts betrachtet wird, auf einen anderen Wert durch Verwendung der SET DEFINE <1_CHARACTER>

Standardmäßig ist die DEFINE-Funktion selbst auf, und es ist auf &

Es kann ausgeschaltet werden - wie bereits erwähnt - aber es kann auch durch Setzen sie auf einen anderen Wert vermieden werden. Seien Sie sehr bewusst, was Sie unterschreiben setzen Sie ihn auf. Im folgende Beispiel habe ich wählte das Zeichen #, aber diese Wahl ist nur ein Beispiel.

SQL> select '&var_ampersand #var_hash' from dual;
Enter value for var_ampersand: a value

'AVALUE#VAR_HASH'
-----------------
a value #var_hash

SQL> set define #
SQL> r
  1* select '&var_ampersand #var_hash' from dual
Enter value for var_hash: another value

'&VAR_AMPERSANDANOTHERVALUE'
----------------------------
&var_ampersand another value

SQL>

gesetzt definieren off <- Dies ist die beste Lösung, die ich gefunden

Ich habe auch versucht ...

Satz definieren}

Ich konnte mehrere Datensätze mit Ampersand Zeichen ‚&‘ eingefügt, aber ich kann das Zeichen ‚}‘ nicht verwenden, in den Text Also beschloss ich, „set definieren off“ zu verwenden und alles funktioniert wie es sollte.

Nach diesem schönen FAQ gibt es ein paar Lösungen.

Sie können auch in der Lage sein, den Ampersand mit dem umgekehrten Schrägstrich \ zu entkommen, wenn Sie den Kommentar ändern können.

Ich hatte eine CASE-Anweisung mit WHEN column = 'sometext & mehr Text' THEN ....

Ich ersetzen es mit WENN Spalte = ‚sometext‘ || CHR (38) || 'Mehr Text' THEN ...

Sie können auch verwenden WENN Spalte LIKE 'sometext _ mehr Text' THEN ...

(_ ist der Platzhalter für ein einzelnes Zeichen)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top