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]
