Jorge,
Gracias por tu respuesta. Empezaba a pensar que mi mensaje no hab�a llegado al foro!!
De todas formas, se trataba de un error de programaci�n. Si observas en el c�digo SQL, declaro una variable VARCHAR de 1024 posiciones a la que le meto la instrucci�n INSERT, etc, etc, y, adem�s, las 1024 posiciones del valor del campo. Como es l�gico, la variable no pod�a albergar tanta informaci�n y truncaba el final de la misma, porduci�ndose el error. Declarando la variable de m�s longitud (5000, e.ej.), ha funcionado perfectamente, incluso en V5R1.
Gracias de nuevo y un saludo,
-- Jos� de la Herr�n N��ez Ayuntamiento de Vitoria-Gasteiz Departamento de Nuevas Tecnolog�as Pintor Vera Fajardo, 5 bajo, 01008 Vitoria-Gasteiz Tlf: +34 945 16 16 14 Fax: +34 945 16 16 00 mailto:[EMAIL PROTECTED]
jorge escribi�:
Hola:
En V5R1 no te puedo decir.
Nosotros hemos comenzado a trabajar con Procedimientos Almacenados en V5R2, IBM dice que en esta versi�n es donde realmente la base de datos aprovecha al m�ximo las posibilidades.
Despu�s de 25.000 ptf's hemos conseguido que se creen procedimientos almacenados de un n�mero aceptable de l�neas con variables de un tama�o considerable, �pero como nos ha costado!.
Saludos.
-----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] nombre de Jos� de la Herr�n Enviado el: martes, 18 de enero de 2005 15:22 p.m. Para: Forum Help400 Asunto: SQL y procedimientos almacenados
Hola a todos/as,
Tengo una tabla de base de datos sin clave y con un solo campo de tipo VARCHAR(1024):
CREATE TABLE BIBLIO/TABLA (TEXTO VARCHAR(1024))
He hecho un procedimiento almacenado que recibe como par�metro el valor del campo y que tiene una simple insert:
CREATE PROCEDURE BIBLIO/PA ( IN TXT VARCHAR(1024)) LANGUAGE SQL SPECIFIC BIBLIO/PA NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT BEGIN DECLARE SQL_SMT VARCHAR ( 1024 ); SET SQL_SMT = 'INSERT INTO BIBLIO/TABLA VALUES (''' || TRIM(TXT) || ''')'; PREPARE S1 FROM SQL_SMT ; EXECUTE S1 ; END
El problema surge cuando llamo a este procedimiento almacenado pas�ndole las 1024 posiciones rellenas.
CALL BIBLIO/PA ('XXXXXXXXXXXXXXX..........XXXXX') (hasta 1024 equis)
Me devuelve el siguiente error:
SQL0303 - Variable del lenguaje principal no compatible.
Haciendo pruebas, he comprobado que no importa la longitud del campo VARCHAR, el procedimiento s�lo inserta la fila en el caso de que el par�metro tenga una longitud de, como m�ximo, 986 caracteres (extra�o n�mero, �verdad?). En el momento en que se le pasan m�s de 986 caracteres, independientemente de que el campo sea VARCHAR(1024), VARCHAR(2048) o VARCHAR(1000), casca. Me da la impresi�n de que el problema reside en el c�digo C que genera el iSeries para crear el procedimiento almacenado. Estamos en V5R1.
�Se puede tratar de un bug? �A alguien le ha pasado algo parecido?
Gracias de antemano por vuestra colaboraci�n.
-- Jos� de la Herr�n N��ez Ayuntamiento de Vitoria-Gasteiz Departamento de Nuevas Tecnolog�as Pintor Vera Fajardo, 5 bajo, 01008 Vitoria-Gasteiz Tlf: +34 945 16 16 14 Fax: +34 945 16 16 00 mailto:[EMAIL PROTECTED]
_____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]
_____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]
_____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]
