カンマ(,)のJSLエスケープ文字パターンこんにちは、文字列からカンマ (,) をエスケープする方法を教えてください。 二重引用符 (") については \! であることはわかりますが、カンマ (,) についてはわかりません
Re: カンマ(,)のJSLエスケープ文字パターンこんにちは@ディリップクマール、
それはあなたの最初のjslが行うことのようです。 あなたが述べたような出力がどのように行われるかわかりませんが、 3C22、Y MERS、.AAA-.75YINを使用すると、クエリで文字列のどの部分が各変数であるかを識別できるようになります。 引用符を追加することは、カンマだけでは個々のコンポーネントを区別できないため、他の場所での提案でしたが、繰り返しになりますが、SQL に精通していない私には、それが最良の方法であるか、実行可能な方法であるかさえわかりません。
@ジュリアン
Re: カンマ(,)のJSLエスケープ文字パターン@ジュリアン
こんにちは、情報ありがとうございます。
はい、あなたは私の問題を正しく理解しました。 しかし、出力に二重引用符が存在する必要はありません
MN <SPAN class="token operator">=</SPAN> <SPAN class="token string">" \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" "</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token comment">// which stores the string, including quotes:</SPAN>
<SPAN class="token comment">// "3C22" , "Y MERS,.AAA-.75YIN" i </SPAN>
私だけが必要です<SPAN class="token comment">3C22</SPAN> 、<SPAN class="token comment"> Y MERS、.AAA-.75YIN</SPAN>出力として。
提案してください。
よろしく、
ディリップ
Re: カンマ(,)のJSLエスケープ文字パターンこれをデバッグする方法は、ネイティブ SQL Server (使用しているデータベースだと思います) で有効なコマンドを作成することです。その後、JSL で同じ文字列を作成するのは難しくありません。コードをもう少し読みやすくするための提案があります。evalinsert を使用し、MN 変数をキャレット文字 (^) で囲むと、同じことが実現します。
sqlQuery = evalinsert("execute [dbo].[ABC] @MN = '^MN^'");
print(sqlquery);
結果は次のとおりです。
"execute [dbo].[ABC] @MN = '3C22,Y MERS,.AAA-.75YIN'"
問題は、これが間違った SQL Server 構文であることだと思います。変数 MN を文字列全体と等しく設定しています。SQL Server の専門家に相談してもらえますか?
Re: カンマ(,)のJSLエスケープ文字パターンこんにちは@ディリップクマール、
あなたが今直面している問題は理解できたと思います。 問題は、JMP の問題ではなく、データベースがクエリ文字列内のカンマを望まない方法で解析していることである可能性があります。SQLは私の専門ではありませんが、少し検索して見つけました。この郵便受けSQL ステートメント内のカンマなどの文字のエスケープについて説明しました。 他の場所でカンマを使用している場合、カンマだけでは決定的ではないため、個別の句を識別しやすくするために二重引用符を追加することをお勧めします。 あなたの例では、MN 変数を定義するときに次のようになります。ただし、これが機能するかどうかをテストする方法がないので、可能な提案としてのみ提供します。
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@ジュリアン
Re: カンマ(,)のJSLエスケープ文字パターン実際には、以下で定義された変数(MN)に基づいてデータベースからデータを取得する必要があります。 jsl スクリプトで MN を渡し、 3C22, Y MERS,.AAA-.75YIN のデータを取得するとします。出力として
//Create Database Connection
dbc = Create Database Connection(
"XXX",
)
MN = "3C22,Y MERS,.AAA-.75YIN";// where 3C22 is one input and 2nd input is Y MERS,.AAA-.75YIN"
dataTable = New Table( "RAW DATA");
ddt = Data Table( 1 );
//Execute SQL statements using this connection
sqlQuery = "execute [dbo].[ABC] @MN = '" || MN|| "'";
よろしく、
ディリップ
Re: カンマ(,)のJSLエスケープ文字パターンここでは、変数 x="abc,k,yz" を渡すいくつかの使用法を示します。 JSL では、どれもエラーを引き起こしません。問題が発生している箇所をより具体的に教えていただけますか?引用符で囲まずに別のリテラル文字列に追加されている場合、問題があることがわかります。
names default to here(1);
x= "abc,k,yz";
rr=function({y},show(y));
rr(x);
dt=new table(new column(x,formula(random uniform())));
dt<<ADD rows=""></ADD>Re: カンマ(,)のJSLエスケープ文字パターンこんにちは@ディリップクマール、
スクリプトを詳しく見ないと、なぜ JMP がその変数をそのように処理しているのかわかりません。 実際には、区切り文字に基づいて文字列を分解する特別な作業をしない限り、常に文字列全体が返されることが期待されます。 Word() などの関数を使用して文字列 X の部分を剥がしていますか? さらに共有していただければ、喜んで解決のお手伝いをさせていただきます。 あるいは、単一の変数を渡したいが、変数内で参照するものをより厳密に制御したい場合は、おそらくリストを使用します。 あなたの説明から、1 つの要素を「abc」、もう 1 つの要素を「x,yz」にしたいように思えます。 次の jsl がこれに役立ちます。
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@ジュリアン
Re: カンマ(,)のJSLエスケープ文字パターン実際には、変数 x= "abc,k,yz" を定義しました。ここで、abc は最初の文字列で、x,yz は 2 番目の文字列です。
今、これらの変数をスクリプトを通して渡しているとします。実行中、私のスクリプトは変数 x を abc、k、yz として個別に取得します。
よろしく、
ディリップRe: カンマ(,)のJSLエスケープ文字パターンこんにちは@ディリップクマール、
カンマにエスケープ文字は必要ありません。引用符で囲まれた文字列内で簡単に使用できます。
参考のために、この投稿の最後に jsl エスケープ シーケンスを記載しました。 しかし、文字列内のカンマが何らかのエラーを引き起こしているように見える状況に遭遇したことはありませんか? 詳しく説明していただければ、何が起こっているのかを解明できると確信しています。
@ジュリアン
