逗號 (,) 的 JSL 轉義字元模式嗨,誰能告訴我如何從字串中轉義逗號 (,)。 我知道雙引號 (") 是 \! 但不知道逗號(,)
回覆:JSL 逗號 (,) 的轉義字元模式你好@dilipkumar ,
這似乎就是你最初的 jsl 所做的。 我不確定你所說的輸出如何, 3C22,YMERS,.AAA-.75YIN ,將允許查詢識別字串的哪個部分是每個變數。 添加引號是其他地方的建議,以幫助區分各個組件,因為單獨的逗號不能,但同樣,由於不熟悉 SQL,我不知道這是否是最好的甚至可行的方法。
@朱利安
回覆: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"> YMERS,.AAA-.75YIN</SPAN>作為輸出。
請建議。
問候,
迪利普
回覆: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專家可以插嘴嗎?
回覆:JSL 逗號 (,) 的轉義字元模式你好@dilipkumar ,
我想我理解你現在面臨的問題。 看來問題可能是資料庫以您不想要的方式解析查詢字串中的逗號,而不是 JMP 那樣。SQL 不是我的專長,但我做了一些搜尋並發現了這個帖子討論了 SQL 語句中的轉義字符,例如逗號。 建議添加雙引號以幫助識別單獨的子句,因為如果您在其他地方使用逗號,則單獨的逗號並不能確定。 在您的範例中,定義 MN 變數時可能如下所示,但我必須說我沒有辦法測試這是否有效,因此我僅將其作為可能的建議提供:
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@朱利安
回覆: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|| "'";
問候,
迪利普
回覆: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>回覆:JSL 逗號 (,) 的轉義字元模式你好@dilipkumar ,
如果沒有看到更多的腳本,我無法解釋為什麼 JMP 以這種方式處理該變數。 實際上,我希望始終返回整個字串,除非您需要做額外的工作來根據分隔符號將其分開。 您是否使用諸如 Word() 之類的函數來剝離字串 X 的片段? 如果您能分享更多信息,我很樂意幫助解決這個問題。 或者,如果您希望傳遞單個變量,但希望更嚴格地控制變量中引用的內容(可能是列表)。 根據您的描述,聽起來您希望一個元素為“abc”,另一個元素為“x,yz”。 以下 jsl 可以幫助解決這個問題:
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@朱利安
回覆:JSL 逗號 (,) 的轉義字元模式實際上我已經定義了一個變數x =“abc,k,yz”。其中 abc 是第一個字串,其中 x,yz 是第二個字串。
現在,如果我透過我的腳本傳遞這些變數。在執行過程中,我的腳本將變數 x 分別視為 abc、k 和 yz。
問候,
迪利普回覆:JSL 逗號 (,) 的轉義字元模式你好@dilipkumar ,
逗號不需要轉義字符,您可以簡單地在引用的字串中使用它們:
作為參考,我在這篇文章的底部包含了 jsl 轉義序列。 但是,您是否遇到過字串中的逗號似乎導致某種錯誤的情況? 我相信如果你能詳細說明的話我們就能查清到底發生了什麼事。
@朱利安
