Modello di carattere escape JSL per virgola(,)Ciao Qualcuno può dirmi come sfuggire alla virgola (,) da una stringa. Lo so per double quate (") è \! ma non so per virgola(,)
Ri: Modello di carattere escape JSL per virgola(,)CIAO @dilipkumar ,
Sembra essere ciò che fa il tuo jsl iniziale. Non sono sicuro di come sia un output come hai affermato, 3C22, Y MERS,.AAA-.75YIN , consentirà alla query di identificare quale parte della stringa corrisponde a ciascuna variabile. L'aggiunta di virgolette è stata un suggerimento altrove per aiutare a distinguere i singoli componenti poiché la virgola da sola non può, ma ancora una volta, non essendo esperto di SQL, non so se questo sia il metodo migliore o addirittura praticabile.
@giuliano
Ri: Modello di carattere escape JSL per virgola(,)@giuliano
Ciao, grazie per le informazioni.
Sì, hai capito bene il mio problema. Ma non ho bisogno di virgolette doppie per essere presenti nell'output
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>
ho solo bisogno<SPAN class="token comment"> 3C22</SPAN> ,<SPAN class="token comment"> Y MERS,.AAA-.75YIN</SPAN> come uscita.
per favore suggerisci.
Saluti,
Dilip
Ri: Modello di carattere escape JSL per virgola(,)Il modo per eseguire il debug è creare un comando funzionante in SQL Server nativo (penso che sia il database che stai utilizzando).Dopodiché non è difficile creare la stessa stringa in JSL.Ho un suggerimento per rendere il codice un po' più facile da leggere.Se usi evalinsert e racchiudi la variabile MN con caratteri accentati (^) otterrai la stessa cosa:
sqlQuery = evalinsert("execute [dbo].[ABC] @MN = '^MN^'");
print(sqlquery);
Il risultato è:
"execute [dbo].[ABC] @MN = '3C22,Y MERS,.AAA-.75YIN'"
Penso che il problema sia che questa è la sintassi errata di SQL Server.Stai impostando la variabile MN uguale all'intera stringa.Un esperto di SQL Server può intervenire qui?
Ri: Modello di carattere escape JSL per virgola(,)CIAO @dilipkumar ,
Penso di capire il problema che stai affrontando ora. Sembra che il problema potrebbe essere che il database sta analizzando le virgole nella stringa di query in un modo che non desideri, non che JMP lo faccia.SQL non è la mia specialità, ma ho fatto una piccola ricerca e mi sono imbattuto questo post che trattava i caratteri di escape, come le virgole, nelle istruzioni SQL. Il suggerimento è di aggiungere virgolette doppie per aiutare a identificare le clausole separate poiché la virgola da sola non è definitiva se usi le virgole altrove. Nel tuo esempio, potrebbe assomigliare al seguente quando definisci la variabile MN, anche se devo dire che non ho un modo per verificare se funzionerà, quindi lo offro solo come possibile suggerimento:
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@giuliano
Ri: Modello di carattere escape JSL per virgola(,)In realtà ho bisogno di recuperare i dati dal database, in base alla variabile definita di seguito (MN). Se sto passando il MN nel mio script jsl e ottengo i dati di 3C22, Y MERS,.AAA-.75YIN . come uscita
//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|| "'";
Saluti,
Dilip
Ri: Modello di carattere escape JSL per virgola(,)Ecco alcuni usi del passaggio di una variabile x="abc,k,yz"; in JSL, nessuno dei quali causa un errore.Puoi essere più specifico su dove riscontri il problema?Vedo che è un problema se viene aggiunto a un'altra stringa letterale senza virgolette attorno ad essa.
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>Ri: Modello di carattere escape JSL per virgola(,)CIAO @dilipkumar ,
Senza vedere altro del tuo script non posso dire perché JMP stia elaborando quella variabile in quel modo. In realtà, mi aspetterei che l'intera stringa venga sempre restituita a meno che tu non stia facendo un lavoro extra per smontarla in base al delimitatore. Stai utilizzando una funzione come Word() per rimuovere pezzi della stringa X? Se puoi condividere di più, sono felice di aiutarti a capirlo. In alternativa, se desideri passare in giro una singola variabile, ma vuoi un controllo più stretto su ciò a cui fai riferimento nella variabile, forse un elenco. Dalla tua descrizione, sembra che tu voglia che un elemento sia "abc" e un altro elemento "x,yz". Il seguente jsl potrebbe aiutare in questo:
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@giuliano
Ri: Modello di carattere escape JSL per virgola(,)In realtà ho definito una variabile x= "abc,k,yz". dove abc è una prima stringa dove x,yz è la seconda stringa.
ora se sto passando queste variabili attraverso il mio script. durante l'esecuzione il mio script prende la variabile x come abc, k e yz separatamente.
Saluti,
DilipRi: Modello di carattere escape JSL per virgola(,)CIAO @dilipkumar ,
Non è necessario alcun carattere di escape per una virgola, puoi semplicemente usarli all'interno della stringa tra virgolette:
Per riferimento, ho incluso le sequenze di escape jsl in fondo a questo post. Ma stai riscontrando una situazione in cui una virgola in una stringa sembra causare qualche tipo di errore? Sono sicuro che potremo andare a fondo di ciò che sta accadendo se puoi approfondire.
@giuliano
