Tengo el siguiente problema en un procedimiento almacenado. Utilizo Firebird 2.5 con una llamada a una base de dato externa.
un extracto del codigo, el problema esta en el campo prueba (integer) de la tabla proveedor de la BD externa, cuando trato de insertar el registro de la tabla de la BD local si es null, me arroja un error.
El resto de los campos son string, ahi no tengo problema.
Código SQL
[-]
select razon, rut, giro, prueba from proveedor where id_proveedor=:id_prov into :razon, :rut1, giro,
rueba1; -- base de dato local
-- necesariamente tengo que agregar las comillas, sino no funciona.
razon = ''''||:razon ||'''';
rut1 = ''''||:rut1 ||'''';
giro = ''''||:giro ||'''';
prueba = ''''||
rueba1 ||'''';
--prueba = null;
ExECUTE STATEMENT -- base de dato externa
'INSERT INTO proveedor (id_proveedor, razon, rut, giro, prueba)'||
' values ('||:c1||', '||:razon||', '||:rut1||', '||:giro||', '||
rueba||')'
ON EXTERNAL DATA SOURCE
ATA||':C:\BD.FDB'
AS USER 'SYSDBA' PASSWORD '123';
Alguna idea de como resolverlo??