Oracle - Select Dinamico

 
Vista:

Select Dinamico

Publicado por Guillermo (14 intervenciones) el 03/05/2007 01:27:17
Estimados amigos, estoy haciendo el siguiente select dinamico:
v_select_din := 'select count(*)
from '||var_tabla||'
where codigo = '||var_codigo||'
and '||var_campo||' = '||var_valor||'
and pers_codigo = '||var_codigo_cliente;
donde, var_tabla, var_campo, var_valor, var_codigo_cliente, son valores variable y la variable var_valor puede ser varchar, number o date.
Al ejecutar este select,
execute immediate v_select_din into v_cantidad;
me da el siguiente error: ORA-00933 SQL command not properly ended
Me gustaria saber si alguien de ustedes sabe como solucionar mi problema.
Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Select Dinamico

Publicado por Andres (2 intervenciones) el 03/05/2007 21:18:35
Hola,

Si alguno de los argumentos que le estas mandando es string te falta concatenar la comilla sensilla.

Ej:

and '||var_campo||' = '''||var_valor||''''

resultado de la concatenación
and campo = 'valor'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Select Dinamico

Publicado por Guillermo (14 intervenciones) el 03/05/2007 22:00:16
Muchisimas gracias por tu ayuda, realmente ese fue mi error
if var_valor = varchar then
var_valor = chr(39)||var_valor||chr(39)
end if

v_select_din := 'select count(*)
from '||var_tabla||'
where codigo = '||var_codigo||'
and '||var_campo||' = '||var_valor||'
and pers_codigo = '||var_codigo_cliente;

Cordial Saludo,

Guillermo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar