Cómo: Referencia: |
Las cadenas de caracteres deben estar colocadas entre comillas simples para poder ser manipuladas por la mayoría de los motores de bases de datos. Además, las comillas simples insertadas se indican mediante dos comillas individuales, contiguas. El uso de las comillas alrededor de una variable que contenga delimitadores, como espacios o comas, es obligatorio.
El sufijo QUOTEDSTRING, en una variable de Dialogue Manager, aplica las dos siguientes conversiones al contenido de la variable:
Los comandos de Dialogue Manager difieren en cuanto a su capacidad de manipulación de cadenas de caracteres que no estén entre comillas simples y contengan espacios en blanco insertados. Los comandos -PROMPT, explícitos o implícitos, sí pueden leer estas cadenas. A continuación, se coloca entre comillas simples la totalidad de la cadena de entrada, cuando se utiliza .QUOTEDSTRING para operar en ella.
Nota: Al usar el comando -SET para hacer referencia a una cadena de caracteres, asegúrese de que ésta se encuentre entre comillas simples, para evitar errores.
&var.QUOTEDSTRING
donde:
Es una variable de Dialogue Manager.
El siguiente ejemplo muestra el resultado del sufijo QUOTEDSTRING en las cadenas de entrada.
-SET &A = ABC; -SET &B = 'ABC'; -SET &C = O'BRIEN; -SET &D = 'O'BRIEN'; -SET &E = 'O''BRIEN'; -SET &F = O''BRIEN; -SET &G = OBRIEN'; -TYPE ORIGINAL = &A QUOTED = &A.QUOTEDSTRING -TYPE ORIGINAL = &B QUOTED = &B.QUOTEDSTRING -TYPE ORIGINAL = &C QUOTED = &C.QUOTEDSTRING -TYPE ORIGINAL = &D QUOTED = &D.QUOTEDSTRING -TYPE ORIGINAL = &E QUOTED = &E.QUOTEDSTRING -TYPE ORIGINAL = &F QUOTED = &F.QUOTEDSTRING -TYPE ORIGINAL = &G QUOTED = &G.QUOTEDSTRING
La salida es:
ORIGINAL = ABC QUOTED = 'ABC' ORIGINAL = ABC QUOTED = 'ABC' ORIGINAL = O'BRIEN QUOTED = 'O''BRIEN' ORIGINAL = O'BRIEN QUOTED = 'O''BRIEN' ORIGINAL = O'BRIEN QUOTED = 'O''BRIEN' ORIGINAL = O''BRIEN QUOTED = 'O''''BRIEN' ORIGINAL = OBRIEN' QUOTED = 'OBRIEN'''
Nota: El comando -SET elimina las comillas simples alrededor de una cadena. Observe que, en el ejemplo de más arriba, el resultado de -SET &B = 'ABC' fue cambiado a ORIGINAL = ABC (como indica la salida), antes de la conversión de QUOTEDSTRING.
El siguiente comando -TYPE acepta la entrada con o sin comillas, y presenta la salida entrecomillada.
-TYPE THE QUOTED VALUE IS: &E.QUOTEDSTRING
La salida es:
La siguiente solicitud crea una tabla Oracle llamada SQLVID, a partir del origen de datos VIDEOTRK.
TABLE FILE VIDEOTRK SUM CUSTID EXPDATE PHONE STREET CITY STATE ZIP TRANSDATE PRODCODE TRANSCODE QUANTITY TRANSTOT BY LASTNAME BY FIRSTNAME WHERE LASTNAME NE 'NON-MEMBER' ON TABLE HOLD END -RUN CREATE FILE SQLVID -RUN MODIFY FILE SQLVID FIXFORM FROM HOLD DATA ON HOLD END
Examine la siguiente solicitud de SQL Translator:
SET TRACEUSER = ON SET TRACEON = STMTRACE//CLIENT SQL SELECT * FROM SQLVID WHERE LASTNAME = &1.QUOTEDSTRING; END
Al ejecutarse esta solicitud debe introducir un apellido, en este caso, O'BRIEN:
PLEASE SUPPLY VALUES REQUESTED 1= O'BRIEN
En la solicitud de SQL generada, la cadena de caracteres empleada en la comparación aparece, de forma correcta, entre comillas simples, mientras que la comilla simple, insertada, aparece doblada:
SELECT SQLCOR01.CIN , SQLCOR01.LN , SQLCOR01.FN , SQLCOR01.EXDAT , SQLCOR01.TEL , SQLCOR01.STR , SQLCOR01.CITY , SQLCOR01.PROV , SQLCOR01.POSTAL_CODE , SQLCOR01.OUTDATE , SQLCOR01.PCOD , SQLCOR01.TCOD , SQLCOR01.NO , SQLCOR01.TTOT FROM SQLVID SQLCOR01 WHERE SQLCOR01.LN = 'O''BRIEN';
Las siguientes variaciones de la entrada se traducen a la forma correcta de la cadena entrecomillada, mostrada en el seguimiento.
'O'BRIEN' 'O''BRIEN'
Cualquier otra variación resulta en:
Error - Se esperaba un punto y coma o END
Error - Faltan comillas o no se han introducido correctamente
Error - (el valor introducido) no es una columna válida
Error - Error de sintaxis en línea ... Comillas no equilibradas
Las cadenas sin comillas simples, insertadas, pueden introducirse sin comillas o insertadas entre comillas simples: SMITH o 'SMITH'.
Si usa & sin el sufijo QUOTEDSTRING en la solicitud, éstas son las cadenas de entrada aceptables, que recuperan el registro de O'Brien:
'''O'''BRIEN''' '''O''''BRIEN'''
Si emplea &1 sin el sufijo QUOTEDSTRING, la forma aceptable de introducir una cadena sin comillas simples, insertadas, es '''SMITH'''.
Para que la cadena entre comillas simples resulte aceptable, sin el sufijo QUOTEDSTRING, emplee '&1' en la solicitud. En este caso, para recuperar el registro de O'Brien, debe introducir la cadena que se hubiese producido con el sufijo QUOTEDSTRING:
'O''''BRIEN'
Para introducir una cadena sin comillas simples, insertadas, utilizando '&1', omita o incluya las comillas simples, circundantes: SMITH o 'SMITH'.
Nota: La forma '&1.QUOTEDSTRING' no es compatible.
(FOC257) MISSING QUOTE MARKS: value;
WebFOCUS |