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]

Responder a