SQL JSON_VALUE-Abfrage und Leerzeichen in Feldern in JSLIch versuche, eine Tabelle in einer Oracle-Tabelle mit einem JSON-Feld abzufragen. Ich verwende die JSON_VALUE-Funktion in SQL. Einige der JSON-Felder enthalten Leerzeichen, daher setze ich doppelte Anführungszeichen um die Werte. Dies funktioniert, wenn die Abfrage außerhalb von JSL ausgeführt wird, führt jedoch zu einem Fehler, wie unten in JSL gezeigt. Vielen Dank im Voraus für jede Hilfe, die Sie leisten können.
JSL:
dbc = Datenbankverbindung erstellen("Treiber={Oracle in InstantClient11_1};UID=xxxx;DBQ=yyyy;PWD=zzzz;");
user_sql = "Wählen Sie json_value(feature, '$."ball dimension"') als ball_dimension aus bla";
user_dt = sql ausführen(dbc, user_sql);
Automatisierung und SkriptingDatenzugriffWindowsBetreff: SQL JSON_VALUE-Abfrage und Leerzeichen in Feldern in JSLSie müssen diese Anführungszeichen maskieren und normalerweise funktionieren diese Methoden (ich würde Option 1 verwenden)
Names Default To Here(1);
// user_sql ="select json_value(feature, '$."ball dimension"') as ball_dimension from blah";
// Option 1
user_sql1 = "\[select json_value(feature, '$."ball dimension"') as ball_dimension from blah]\";
// Option 2
user_sql2 = "select json_value(feature, '$.\!"ball dimension\!"') as ball_dimension from blah";
// Print demo
Write("\!N" || user_sql1);
Write("\!N" || user_sql2);
https://www.jmp.com/support/help/en/18.0/#page/jmp/jsl-syntax-rules.shtml - Suchen Sie nach doppelten Anführungszeichen

Bearbeiten:
Nur um noch eine zusätzliche Erklärung hinzuzufügen. Wenn Sie in JMP doppelte Anführungszeichen in Ihrem String haben möchten, müssen Sie diese maskieren (es gibt auch andere Zeichen, die maskiert werden müssen). Sie können einfache doppelte Anführungszeichen maskieren, indem Sie sie durch \!" ersetzen. Wenn Sie alles in Ihrem String „automatisch maskieren“ möchten, umschließen Sie es mit „\[...]\“ statt nur mit „...“.
Betreff: SQL JSON_VALUE-Abfrage und Leerzeichen in Feldern in JSLDanke, Jarmo!