Ver Mensaje Individual
  #1  
Antiguo 25-01-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 20
mjjj Va por buen camino
Procedimiento almacenado con BD externa

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??
Responder Con Cita