Versuch, einer Variablen im Shell-Skript die Ausgabe der SQL-Abfrage für ein Objekt zuzuweisen, das Sonderzeichen enthält.Escaping-Sonderzeichen bei SQL-Ausgabe an Variable im Shell-Skript
Lauf direkt auf der Datenbank:
db2 -x 'select count(*) from <SCHEMA>."/BIC/TEST"'
11000
Doch wenn ich das in Skript enthalten muss ich doppelte Anführungszeichen verwenden, wie ich Variablen in die SQL-geben verwende. Einfache Anführungsstriche
Output=$(db2 -x 'select count(*) from ${_SCHEMA}."/BIC/TEST"')
echo -e "$Output"
Ergebnisse in:
SQL20521N Error occurred processing a conditional compilation directive near
"_". Reason code="7". SQLSTATE=428HV
Wenn ich doppelte Anführungszeichen verwende ich getroffen:
SQL0104N ein unerwartetes Token " '/ BIC/TEST'" wurde nach „ount gefunden (*)
versucht, die doppelten Anführungszeichen mit einem anderen Satz von doppelten Anführungszeichen zu entkommen:
d b2 -x 'Wählen Sie Anzahl (*) von $ {_ SCHEMA}. ""/BIC/TEST ""'
Aber das scheint nicht im Skript zu funktionieren. Es funktioniert für Tabellen, bei denen keine Sonderzeichen/Anforderungen in Angeboten enthalten sind.
Jede Hilfe wird geschätzt.
Bearbeiten Sie Ihre Frage hinzufügen, welche Shell Sie verwenden (bash, ksh etc.) – mao
ich versucht habe, in sh & Bash – dgodson