Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: stompy en 16 de Octubre de 2007, 10:01:27 am

Título: escribir comilla simple dentro de literal
Publicado por: stompy en 16 de Octubre de 2007, 10:01:27 am
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'
Título: Re: escribir comilla simple dentro de literal
Publicado por: Nuria en 16 de Octubre de 2007, 10:58:12 am
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'.

Título: Re: escribir comilla simple dentro de literal
Publicado por: oscar en 16 de Octubre de 2007, 11:18:59 am
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...
Título: Re: escribir comilla simple dentro de literal
Publicado por: stompy en 17 de Octubre de 2007, 08:51:53 am
Gracias a ambos.

Si q es lo q indica Oscar, vamos era meter comillas entre comillas. haré lo de la cte.
Título: Re: escribir comilla simple dentro de literal
Publicado por: stompy en 19 de Octubre de 2007, 09:19:22 am
cuando hago el-> where ( filtro ).

me dice: ( no es una operación ógica válida.

Como puedo solucionar esto?

Gracias.
Título: Re: escribir comilla simple dentro de literal
Publicado por: oscar en 19 de Octubre de 2007, 10:03:15 am
Copia estos otros códigos y sustituye la tabla y campos por los tuyos.

Haber que tal te va!

Código: [Seleccionar]
    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.

Código: [Seleccionar]
    DATA: l_where TYPE string.
    DATA: loquesea.

    l_where = 'campo = ''cnam'''.

    SELECT cnam INTO loquesea
                FROM trdir
               WHERE (l_where).



    ENDSELECT.
Título: Re: escribir comilla simple dentro de literal
Publicado por: stompy en 19 de Octubre de 2007, 11:37:02 am
sigue sin cogermelo pero metí los filtros de otra manera.

Gracias Oscar.