Oracle - exec_sql

 
Vista:

exec_sql

Publicado por jesus (2 intervenciones) el 13/02/2008 16:59:24
hola estoy en oracle 8 y tengo un problemilla con sql dinamico.
el caso que yo tenia unaconsulta dnodel obligaba poner un dni, una pro y otra serie de parametros y funcionaba:

CONSULTA:= 'SELECT N.NUMREG, N.NOMBRE, CODPRO_OCA, FROM TRNZN N, TRNZNUC V, '||
'TRNZNUCACTIVIDADES A, TRNZNUCESPECIES E, TRNZESPECIES F WHERE N.NUMREG = V.NUMREG '||
'AND N.NUMREG = A.NUMREG AND N.NUMREG = E.NUMREG AND E.IDESP = F.IDESP '||
' AND V.VO_NIF = '''||:BCONSULTA.VO_NIF||''''||
' AND N.CODPRO = '||:BCONSULTA.CODPRO||
' AND N.CODMUN = '||:BCONSULTA.CODMUN||') 'AND N.NUMREG = A.NUMREG AND N.NUMREG = E.NUMREG AND E.IDESP = F.IDESP '||WCONSULTA

el problema viene cuando le quiero permitir que pongan o no dni, prov y municipio este es mi codigo pero salta error, no acepta el and (---- or ----):

CONSULTA:= 'SELECT N.NUMREG, N.NOMBRE, CODPRO_OCA, FROM TRNZN N, TRNZNUC V, '||
'TRNZNUCACTIVIDADES A, TRNZNUCESPECIES E, TRNZESPECIES F WHERE N.NUMREG = V.NUMREG '||
'AND N.NUMREG = A.NUMREG AND N.NUMREG = E.NUMREG AND E.IDESP = F.IDESP '||
' AND V.VO_NIF = '''||:BCONSULTA.VO_NIF||''''||
' AND N.CODPRO = '||:BCONSULTA.CODPRO||
' AND ((N.CODMUN = '||:BCONSULTA.CODMUN||') OR (:BCONSULTA.CODMUN IS NULL))'||
'AND N.NUMREG = A.NUMREG AND N.NUMREG = E.NUMREG AND E.IDESP = F.IDESP '||WCONSULTA
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:exec_sql

Publicado por aem (22 intervenciones) el 15/02/2008 13:27:40
Hola, el problema es que no dejas un espacio en blanco entre los parentesis '))' y el AND.

((N.CODMUN = '||:BCONSULTA.CODMUN||') OR (:BCONSULTA.CODMUN IS NULL))'||
'AND N.NUMREG = A.NUMREG

^
|

Saludos.
aem.-
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