JSL-Escape-Zeichenmuster für Komma(,)Hallo, kann mir jemand sagen, wie ich das Komma (,) aus einer Zeichenfolge entfernen kann? Ich weiß, dass es für Double Quate (") \! ist, aber für Komma (,) nicht bekannt.
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Hallo @dilipkumar ,
Das scheint das zu sein, was Ihr anfängliches JSL tut. Ich bin mir nicht sicher, wie die von Ihnen angegebene Ausgabe aussehen wird. 3C22, Y MERS,.AAA-.75YIN , ermöglicht es der Abfrage, zu identifizieren, welcher Teil der Zeichenfolge die jeweilige Variable ist. Das Hinzufügen von Anführungszeichen war an anderer Stelle ein Vorschlag, um die Unterscheidung der einzelnen Komponenten zu erleichtern, da das Komma allein nicht ausreicht, aber da ich mich mit SQL nicht so gut auskenne, weiß ich nicht, ob das die beste oder überhaupt brauchbare Methode ist.
@julianisch
Betreff: JSL-Escape-Zeichenmuster für Komma(,)@julianisch
Hallo, Danke für die Info.
Ja, Sie haben mein Problem richtig verstanden. Aber ich brauche keine doppelten Anführungszeichen, um in der Ausgabe vorhanden zu sein
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>
Ich brauche nur<SPAN class="token comment"> 3C22</SPAN> ,<SPAN class="token comment"> Y MERS,.AAA-.75YIN</SPAN> als Ausgabe.
bitte vorschlagen.
Grüße,
Dilip
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Die Möglichkeit, dies zu debuggen, besteht darin, einen funktionierenden Befehl im nativen SQL Server zu erstellen (ich denke, das ist die Datenbank, die Sie verwenden).Danach ist es nicht schwer, denselben String in JSL zu erstellen.Ich habe einen Vorschlag, den Code etwas lesbarer zu machen.Wenn Sie evalinsert verwenden und die MN-Variable mit Caret-Zeichen (^) umgeben, wird das Gleiche erreicht:
sqlQuery = evalinsert("execute [dbo].[ABC] @MN = '^MN^'");
print(sqlquery);
Das Ergebnis ist:
"execute [dbo].[ABC] @MN = '3C22,Y MERS,.AAA-.75YIN'"
Ich denke, das Problem ist, dass dies eine falsche SQL Server-Syntax ist.Sie setzen die Variable MN gleich auf die gesamte Zeichenfolge.Kann sich hier ein SQL Server-Experte melden?
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Hallo @dilipkumar ,
Ich glaube, ich verstehe das Problem, mit dem Sie jetzt konfrontiert sind. Es sieht so aus, als ob das Problem darin liegen könnte, dass die Datenbank die Kommas in Ihrer Abfragezeichenfolge auf eine Art und Weise analysiert, die Sie nicht möchten, nicht aber, dass JMP dies tut.SQL ist nicht mein Spezialgebiet, aber ich habe ein wenig gesucht und bin darauf gestoßen dieser Beitrag in dem es um Escape-Zeichen wie Kommas in SQL-Anweisungen geht. Der Vorschlag besteht darin, doppelte Anführungszeichen einzufügen, um die einzelnen Klauseln besser identifizieren zu können, da das Komma allein nicht ausschlaggebend ist, wenn Sie an anderer Stelle Kommas verwenden. In Ihrem Beispiel könnte das beim Definieren Ihrer MN-Variablen wie folgt aussehen, obwohl ich sagen muss, dass ich keine Möglichkeit habe, zu testen, ob dies funktioniert, daher biete ich es nur als möglichen Vorschlag an:
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@julianisch
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Eigentlich muss ich Daten aus der Datenbank abrufen, basierend auf der unten definierten Variablen (MN). Wenn ich den MN in meinem JSL-Skript übergebe und Daten von 3C22, Y MERS,.AAA-.75YIN erhalte. als Ausgabe
//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|| "'";
Grüße,
Dilip
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Hier sind einige Verwendungsmöglichkeiten für die Übergabe einer Variablen x="abc,k,yz"; in JSL, von denen keines einen Fehler verursacht.Können Sie genauer sagen, wo Sie ein Problem sehen?Ich kann sehen, dass es ein Problem darstellt, wenn es zu einer anderen Literalzeichenfolge hinzugefügt wird, ohne es in Anführungszeichen zu setzen.
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>Betreff: JSL-Escape-Zeichenmuster für Komma(,)Hallo @dilipkumar ,
Ohne mehr von Ihrem Skript zu sehen, kann ich nicht sagen, warum JMP diese Variable auf diese Weise verarbeitet. Eigentlich würde ich erwarten, dass immer die gesamte Zeichenfolge zurückgegeben wird, es sei denn, Sie unternehmen zusätzliche Arbeit, um sie anhand des Trennzeichens zu zerlegen. Verwenden Sie eine Funktion wie Word(), um Teile der Zeichenfolge X abzutrennen? Wenn Sie mehr mitteilen können, helfe ich gerne dabei, dies herauszufinden. Wenn Sie alternativ eine einzelne Variable weitergeben möchten, aber eine genauere Kontrolle darüber haben möchten, worauf Sie in der Variablen verweisen, z. B. eine Liste. Aus Ihrer Beschreibung geht hervor, dass Sie möchten, dass ein Element „abc“ und ein anderes Element „x,yz“ ist. Die folgende JSL könnte dabei helfen:
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@julianisch
Betreff: JSL-Escape-Zeichenmuster für Komma(,)Eigentlich habe ich eine Variable x= „abc,k,yz“ definiert. Dabei ist abc eine erste Zeichenfolge, wobei x,yz die zweite Zeichenfolge ist.
Nun, wenn ich diese Variablen durch mein Skript übergebe. Während der Ausführung verwendet mein Skript die Variablen x separat als abc, k und yz.
Grüße,
DilipBetreff: JSL-Escape-Zeichenmuster für Komma(,)Hallo @dilipkumar ,
Für ein Komma ist kein Escape-Zeichen erforderlich. Sie können es einfach in Ihrer in Anführungszeichen gesetzten Zeichenfolge verwenden:
Als Referenz habe ich die JSL-Escape-Sequenzen am Ende dieses Beitrags eingefügt. Aber stoßen Sie auf eine Situation, in der ein Komma in einer Zeichenfolge einen Fehler zu verursachen scheint? Ich bin mir sicher, dass wir der Sache auf den Grund gehen können, wenn Sie es näher erläutern.
@julianisch
