Quiero guardar en una variable CHAR el siguiente literal, como le indico al sistema q la comillas simples q encierran 0000424001 son literales?
where hkont BETWEEN '0000424001'
Hola.
No se si te entiendo bien.
En principio los textos literales se ponen entre comillas como tienes, lo que veo raro es el BETWEEN, en el caso de que quieras escribir un BETWEEN te faltaría escribir algo así:
WHERE hkont BETWEEN '0000424001' AND '0000424001'.
Aunque por lo que me parece te valdría simplemente con poner:
WHERE hkont = '0000424001'.
Si te refieres a como utilizar las comillas simples dentro de un código te explico como:
l_where = 'campo = ''valor'''.
SELECT lista_campos
INTO loquesea
FROM tabla
WHERE (l_where).
De todas formas yo usaría una constante, (eliminas las comillas extra y el hard-coding)
CONSTANTS: c_valor TYPE tabla-campo VALUE 'valor'.
DATA: l_where TYPE string.
l_where = 'campo = c_valor'.
SELECT lista_campos
INTO loquesea
FROM tabla
WHERE (l_where).
Un saludo...
Gracias a ambos.
Si q es lo q indica Oscar, vamos era meter comillas entre comillas. haré lo de la cte.
cuando hago el-> where ( filtro ).
me dice: ( no es una operación ógica válida.
Como puedo solucionar esto?
Gracias.
Copia estos otros códigos y sustituye la tabla y campos por los tuyos.
Haber que tal te va!
CONSTANTS: c_valor TYPE trdir-cnam VALUE 'cnam'.
DATA: l_where TYPE string.
DATA: loquesea.
l_where = 'campo = c_valor'.
SELECT cnam INTO loquesea
FROM trdir
WHERE (l_where).
ENDSELECT.
DATA: l_where TYPE string.
DATA: loquesea.
l_where = 'campo = ''cnam'''.
SELECT cnam INTO loquesea
FROM trdir
WHERE (l_where).
ENDSELECT.
sigue sin cogermelo pero metí los filtros de otra manera.
Gracias Oscar.