Patrón de caracteres de escape JSL para coma (,)Hola, ¿alguien puede decirme cómo escapar de la coma (,) de una cadena? Lo sé para doble quate (") es \! pero no lo sé para coma (,)
Re: Patrón de caracteres de escape JSL para coma (,)Hola @dilipkumar ,
Eso parece ser lo que hace su jsl inicial. No estoy seguro de cómo se obtiene el resultado como dijiste, 3C22, Y MERS,.AAA-.75YIN , permitirá que la consulta identifique qué parte de la cadena es cada variable. La adición de comillas fue una sugerencia en otro lugar para ayudar a distinguir los componentes individuales, ya que la coma por sí sola no puede, pero nuevamente, al no estar bien versado en SQL, no sé si ese es el mejor o incluso el método viable.
@Julian
Re: Patrón de caracteres de escape JSL para coma (,)@Julian
Hola, gracias por la información.
Sí, has entendido mi problema correctamente. Pero no necesito comillas dobles para aparecer en la salida.
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>
solo necesito<SPAN class="token comment"> 3C22</SPAN> ,<SPAN class="token comment"> Y MERS,.AAA-.75YIN</SPAN> como salida.
Por favor recomiende.
Saludos,
Dilip
Re: Patrón de caracteres de escape JSL para coma (,)La forma de depurar esto es crear un comando que funcione en SQL Server nativo (creo que esa es la base de datos que estás usando).Después de eso, no es difícil crear la misma cadena en JSL.Tengo una sugerencia para hacer que el código sea un poco más fácil de leer.Si usa evalinsert y rodea la variable MN con caracteres de intercalación (^), logrará lo mismo:
sqlQuery = evalinsert("execute [dbo].[ABC] @MN = '^MN^'");
print(sqlquery);
El resultado es:
"execute [dbo].[ABC] @MN = '3C22,Y MERS,.AAA-.75YIN'"
Creo que el problema es que se trata de una sintaxis incorrecta de SQL Server.Está configurando la variable MN igual a toda la cadena.¿Puede un experto en SQL Server intervenir aquí?
Re: Patrón de caracteres de escape JSL para coma (,)Hola @dilipkumar ,
Creo que entiendo el problema al que te enfrentas ahora. Parece que el problema podría ser que la base de datos está analizando las comas en su cadena de consulta de una manera que usted no desea, no que JMP lo haga.SQL no es mi especialidad, pero busqué un poco y encontré esta publicación que discutió los caracteres de escape, como comas, en declaraciones SQL. La sugerencia es agregar comillas dobles para ayudar a identificar las cláusulas separadas, ya que la coma por sí sola no es definitiva si usa comas en otros lugares. En su ejemplo, esto podría verse así al definir su variable MN, aunque debo decir que no tengo una manera de probar si esto funcionará, así que lo ofrezco solo como una posible sugerencia:
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@Julian
Re: Patrón de caracteres de escape JSL para coma (,)En realidad, necesito recuperar datos de la base de datos, según la variable definida a continuación (MN). Si paso el MN en mi script jsl y obtengo datos de 3C22, Y MERS,.AAA-.75YIN. como salida
//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|| "'";
Saludos,
Dilip
Re: Patrón de caracteres de escape JSL para coma (,)A continuación se muestran algunos usos de pasar una variable x="abc,k,yz"; en JSL, ninguno de los cuales causa un error.¿Puedes ser más específico sobre dónde estás viendo un problema?Puedo ver que es un problema si se agrega a otra cadena literal sin citarla.
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: Patrón de caracteres de escape JSL para coma (,)Hola @dilipkumar ,
Sin ver más de su script, no puedo decir por qué JMP procesa esa variable de esa manera. En realidad, esperaría que siempre se devuelva la cadena completa a menos que esté haciendo un trabajo adicional para separarla según el delimitador. ¿Está utilizando una función como Word() para quitar trozos de la cadena X? Si puedes compartir más, estaré feliz de poder ayudarte a resolver esto. Alternativamente, si desea pasar una sola variable, pero desea un control más estricto sobre lo que hace referencia en la variable, tal vez una lista. Según su descripción, parece que desea que un elemento sea "abc" y otro elemento "x,yz". El siguiente jsl podría ayudar con eso:
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@Julian
Re: Patrón de caracteres de escape JSL para coma (,)En realidad he definido una variable x= "abc,k,yz". donde abc es la primera cadena donde x,yz es la segunda cadena.
Ahora, si paso estas variables a través de mi script. Durante la ejecución, mi script toma la variable x como abc,k e yz por separado.
Saludos,
DilipRe: Patrón de caracteres de escape JSL para coma (,)Hola @dilipkumar ,
No se necesitan caracteres de escape para una coma, simplemente puede usarlos dentro de la cadena entrecomillada:
Como referencia, he incluido las secuencias de escape jsl al final de esta publicación. Pero, ¿se encuentra con una situación en la que una coma en una cadena parece causar algún tipo de error? Estoy seguro de que podemos llegar al fondo de lo que está sucediendo si puedes dar más detalles.
@Julian
