Ver Mensaje Individual
  #25  
Antiguo 12-07-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 20
mjjj Va por buen camino
como puedo solucionar esto...

Código SQL [-]
create or alter procedure NEW_PROCEDURE (
    DATA varchar(20))
as
declare variable C1 integer;
declare variable PRO varchar(10);
declare variable AVAL varchar(10);
begin
EXECUTE STATEMENT
'SELECT gen_id(NOC,1) AS CODIGO
FROM RDB$DATABASE'
ON EXTERNAL DATA SOURCE ATA||':C:\LOCAL.FDB'
AS USER 'SYSDBA' PASSWORD 'masterkey'
INTO :C1;
select proveedor, aval from compras where noc = 1 into ro, :AVAL;
EXECUTE STATEMENT
'INSERT INTO compras (noc, proveedor, aval)'||
' values ('||:c1||','||cast(ro as varchar(10))||','||cast(:aval as varchar(10))||')'
ON EXTERNAL DATA SOURCE ATA||':C:\LOCAL.FDB'
AS USER 'SYSDBA' PASSWORD 'masterkey';

end

Este código está bien, no me arroja problemas de sintaxis. El problema es que las variables pro y aval son varchar y al momento se insertarlas necesito que esten entre comillas ("), pero si en el código las pongo entre comillas, no me las toma como variables sino como texto.

estas es la linea con problema, cosas que he probado.

Código SQL [-]
' values ('||:c1||','||:PRO||','||:AVAL||')'

Código SQL [-]
' values ('||:c1||','||cast(ro as varchar(10))||','||cast(:aval as varchar(10))||')'

Espero me puedan ayudar, gracias
Responder Con Cita