¿Cómo obtener el valor de un VARCHAR PL/SQL?

publicado por: Anonymous

Necesito saber cómo puedo obtener el valor de un VARCHAR, no como un carácter, si no como su contenido. Me explico mejor:

NOMBRE VARCHAR2 (30) := 'JMARTINEZG','JPOLANIA';
select * from DOCUMENTOS D WHERE D.NU_ANO_CALENDARIO = '2016'
AND D.ID_LOGIN_USUARIO_ACTUALIZA IN (NOMBRE)

Tengo un Query al cual le debo pasar una variable VARCHAR nombre, el cual, contiene 'JMARTINEZG','JPOLANIA' y necesito que se ejecute con un IN.

Agradezco la ayuda que me puedan brindar y espero me haya dado entender.

solución

En Sql Server y PostgreSql se puede armar la consulta en una variable y luego ejecutarla. Seria algo asi:

PostgreSql PLSQL

$BODY$
DECLARE

lcSQL character varying;
Nombre  text;
BEGIN

Nombre:= 'JMARTINEZG','JPOLANIA';
lcSQL:='select *from DOCUMENTOS D
WHERE D.NU_ANO_CALENDARIO = ''''2016''''
AND D.ID_LOGIN_USUARIO_ACTUALIZA IN (' || Nombre  || ')';

EXECUTE (lcSQL);

END;
$BODY$

Sql Server

Declare @Nombre as VARCHAR (30) 
declare @lcSql as text

Set @Nombre= 'JMARTINEZG','JPOLANIA';
set  @lcSql='select *from DOCUMENTOS D
WHERE D.NU_ANO_CALENDARIO = ''''2016''''
AND D.ID_LOGIN_USUARIO_ACTUALIZA IN (' + @Nombre  + ')'

Exec( @lcSql)
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *