sql JSON_VALUE クエリと JSL のフィールド内のスペースJSON のフィールドを持つ Oracle テーブル内のテーブルをクエリしようとしています。SQL で JSON_VALUE 関数を使用しています。JSON フィールドの一部にはスペースが含まれているため、値を二重引用符で囲みます。JSL 外でクエリを実行するとこの方法が機能しますが、jsl でクエリを実行すると、以下に示すようにエラーが発生します。ご提供いただけるヘルプがあれば、よろしくお願いします。
JSL:
dbc = データベース接続を作成します("Driver={Oracle in InstantClient11_1};UID=xxxx;DBQ=yyyy;PWD=zzzz;");
user_sql ="blah から ball_dimension として json_value(feature, '$."ball dimension"') を選択します";
user_dt = sql(dbc, user_sql) を実行します。
自動化とスクリプトデータアクセスウィンドウズRe: SQL JSON_VALUE クエリと JSL のフィールド内のスペースこれらの引用符をエスケープする必要があり、通常はこれらの方法が機能します(私はオプション1を使用します)
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 - 二重引用符を探す

編集:
追加の説明を追加します。JMP の文字列に二重引用符を使用する場合は、二重引用符をエスケープする必要があります (エスケープする必要がある他の文字もあります)。単一の二重引用符をエスケープするには、\!" に置き換えます。文字列内のすべてを「自動エスケープ」する場合は、単に "..." ではなく "\[...]\" で囲みます。
Re: SQL JSON_VALUE クエリと JSL のフィールド内のスペースありがとう、Jarmo!