Oracle SQL文に変数を渡すJMP 13 JSL私は、モーダルウィンドウを使用して変数を定義するためのJMP 13スクリプトを持つ同僚と協力しています。 次に、ユーザー選択により、スクリプトのオープンデータベースセクションに渡す変数をSQLステートメントに設定します。 モーダルウィンドウでオーブンが選択されているデータテーブルが更新されます。 次に、オーブン列を選択してこの値をSQLステートメントに渡します。
例です。
OvenList={18,22};
nw=New Window( " Reference Units",<<MODAL></MODAL>
私たちが抱えている問題は以下の通りです...
oven_id:スクリプトがパスする[2,2]
test_part_id:スクリプトは{"partid1"、"partid2"}を渡します
質問
1)SQL文に渡されるoven_idとして設定するオーブン列の最初の値をどのように選択するのですか?
2)Oracleは括弧と二重引用符が好きではないようです。一重引用符とパートIDをハードコードした場合、IN( 'partid1'、'partid2')のようになります
助けて!!!
変数をOracle SQL文に渡すJMP 13 JSLそれはあなたのために働いてうれしい。 ^ varname ^構成子は、とともに使用する必要があります。 evalinsert 。 evalinsertを使用すると、コードがややきれいに見えるので、char()を使用して数値を文字列に変換する必要はありません。
test_part_in_list = "('" || concat items(test_part_id, "', '") || "')";
sql = evalinsert(
"Select db.table.field1
db.table.field2
db.table.field3
FROM db.table
WHERE db.table.exprmt = 'blah'
AND db.table.field = ^oven_id[1]^
AND db.table.field In ^test_part_in_list^ ORDER BY test_part_id ASC");
Open Database( -- connection string info -- , sql, "dataset");変数をOracle SQL文に渡すJMP 13 JSLpmroz、
素早い返信とコード提案をありがとう。 それは私達の適用のために完璧に働いた。 どうもありがとうございました。 ^ var_name ^、^ || var_name || ^などを使用して、さまざまなフォーラムからあらゆる種類の解決策を試しました。 リストを作成してあなたの解決策は私たちが欠けていた解決策のステップでした。
変数をOracle SQL文に渡すJMP 13 JSL値を取得リストを返すので、それらを使うためには個々の配列要素を参照する必要があります。 あなたが使用することができます連結アイテム INリストを作成します。 これは動作します:
test_part_in_list = "('" || concat items(test_part_id, "', '") || "')";
sql =
"Select db.table.field1
db.table.field2
db.table.field3
FROM db.table
WHERE db.table.exprmt = 'blah'
AND db.table.field = " || char(oven_id[1]) || "
AND db.table.field In " || test_part_in_list || "ORDER BY test_part_id ASC";
Open Database( -- connection string info -- , sql, "dataset");