Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Como tratar este parámetro de entrada de texto...

Estas en el tema de Como tratar este parámetro de entrada de texto... en el foro de Oracle en Foros del Web. Hola. Tengo el siguiente problema: He hecho un procedimiento con un parámentro de entrada tipo texto en el que se introducirá una sentencia SQL para ...
  #1 (permalink)  
Antiguo 20/10/2010, 07:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Como tratar este parámetro de entrada de texto...

Hola. Tengo el siguiente problema:

He hecho un procedimiento con un parámentro de entrada tipo texto en el que se introducirá una sentencia SQL para posteriormente ser procesada con EXECUTE IMMEDIATE.

El problema es que al llamar al procedimiento tengo que hacerlo de la siguiente manera:

My_proc ('insert into TABLA (campo_txt, campo_num) values (''mi texto'', 10)');

Si os fijais, he tenido que poner dobles '' para acotar el texto, pero necesitaria de alguna forma poder poner la sentencia de forma normal, es decir:

My_proc ('insert into TABLA (campo_txt, campo_num) values ('mi texto', 10)');

Dentro del procedimiento se como tratar la cadena de texto para que cambie la ' por ''

El problema es que cuando llamo al procedimiento de la segunda forma me da un error ya que entiende que insert into TABLA (campo_txt, campo_num) values ( es un parámetro y el resto del valor sobra.

¿Sabria alguien como puedo hacer para introducir el valor del procedimiento un una comillas simple en lugar de dos?

Gracias por vuestro tiempo.

Un saludo
  #2 (permalink)  
Antiguo 20/10/2010, 12:35
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Como tratar este parámetro de entrada de texto...

Mañana si tengo tiempo en el curro lo miro ( tengo que meter 4 proyectos en producción, ARGHHHHHHHHH )

Pero prueba esto e investigalo por ese lado :

My_proc ('insert into TABLA (campo_txt, campo_num) values ('''mi texto'', 10)');

Fijate que he puesto compillas simples, no dobles.
  #3 (permalink)  
Antiguo 20/10/2010, 21:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Como tratar este parámetro de entrada de texto...

o tambien prueba con el operador q (quote)
http://www.adp-gmbh.ch/ora/sql/q.html

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 21/10/2010, 01:06
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Como tratar este parámetro de entrada de texto...

Hola. Gracias por responder.

Huesos, corrigeme si no, pero creo que el operador Q es de la 10g, ¿no es asi?... tengo la 9i.

Y en cuando a las dobles ''. Tal vez me expresé mal, a lo que me estaba refiriendo era a dos comillas simples.

La cosa es que necesito poder pasarle la query al procedimiento de igual forma que si la estuviese escribiendo en SqlPlus, por ejemplo.

Se que puede parecer que es por pereza, ya que podria simplemente poner dos comillas simples donde haya una y asunto resuelto. El problema es que cuando sea una sentencia del tipo:

INSERT INTO mytable (field1, field2, field3, field3...) VALUES
(SELECT other_field1 FROM other_table WHERE other_field2='hello' AND other_field3 IN (SELECT more_field1 FROM more_table WHERE more_field2='friend')),
SELECT last_field1 FROM last_table WHERE lastfield2 IN ('spain', 'france', 'italy'),
SELECT.......,
SELECT......);

en este caso, va a ser muy incómodo tener que añadir más comillas simples.

En fin, a seguir dandole vueltas.


Saludos

Etiquetas: entrada
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:58.