Imprimir una cadena en un Procedimiento Almacenado

jimbr
08 de Enero del 2005
Hola... soy nuevo aqui..... una pregunta... profa...
tengo un procedimiento donde tengo una sentencia sql creada dinamicamente.. pero al momento de ejecutarla.. se cae.. y quisiera saber porq,... para eso.. necesito imprimir esta cadena.. alguien sabe como hacerlo????

gracias.....

jc3000
08 de Enero del 2005
A ver compañero, da mas datos ¿ que quieres decir cuando dices que "se cae".
Te debería salir algún mensaje de error, ponlo aquí.
¿puedes ponernos el código pl-sql que utilizas ?
Pon solamente todo lo que haga referencia al sql dinamico.

PD : Si quieres sacar algo por pantalla, en las excepciones, gestiona el WHEN OTHERS y utiliza el DBMS_OUTPUT.PUT_LINE('La cadena es : '||variable_que_contiene_la_sentencia_sql_que_se_quiere_ejecutar_dinamicamente);
Pero antes de ejecutar el proceso pon esto en el sql plus : SET SERVEROUTPUT ON
Salu2

jimbr
08 de Enero del 2005
si clarop...
mi problema radica es que tengo una fecha como parametro

suponiendo q el parametro es "fecha"

cadena := 'select * from tabla '
condicion:= 'tabla..FECHA >= TO_DATE(' || CHR(39) || fecha || CHR(39) ||', ' || CHR(39) || 'DD-MM-YYYY' || CHR(39) ||')';

cadena:= cadena || condicion
open cursor for
cadena

ahi el query no funciona porq esta mal formado.. obviamente por el manejo de la fecha.... pero quisiera imprimir esa cadena para poder arreglarla... pero no se como hacerlo...

muchas gracias.... espero q ahora me haya explicado bien...

jimbr
08 de Enero del 2005

lo que pasa es q estoy tratando de formar un query de la sgte forma....

select * from tabla
from fecha > to_date ( '01/01/2005' , 'dd/mm/yyyy')

pero estoy armando la consulta.. me enredo con tanto apostrofe....

jc3000
08 de Enero del 2005
Vamos a ver si te puedo ayudar compa porque esto de las fechas es un coñazo por el tema de las comillas. Puede que no te lo ponga del todo bien porque acabo de formatear mi pc y no me he instalao aún mi editor de sql y te lo voy a poner a ojo de buen cubero, pero bueno, alla vá, esto sería mas o menos así.

'select * from '||
variable_con_el_nombre_de_la_tabla||
' where fecha > to_date('||
'''||
'01/01/2005'||
'''||
','||
'''||
'dd/mm/yyyy'||
'''||
')'

Prubalo y nos dices si te rula

Salu2

jc3000
08 de Enero del 2005
Pero para asegurarte de que la cadena la montas bien, ejecuta esto desde el SQL Plus :

select
'select * from '||
variable_con_el_nombre_de_la_tabla||
' where fecha > to_date('||
'''||
'01/01/2005'||
'''||
','||
'''||
'dd/mm/yyyy'||
'''||
')' cadena
from dual
Pero cambiando esto :
variable_con_el_nombre_de_la_tabla||
por esto
' nombre_de_la_tabla '||

jc3000
08 de Enero del 2005
Pero para asegurarte de que la cadena la montas bien, ejecuta esto desde el SQL Plus :

select
'select * from '||
variable_con_el_nombre_de_la_tabla||
' where fecha > to_date('||
'''||
'01/01/2005'||
'''||
','||
'''||
'dd/mm/yyyy'||
'''||
')' cadena
from dual
Pero cambiando esto :
variable_con_el_nombre_de_la_tabla||
por esto
' nombre_de_la_tabla '||