Все не правильно
Пример: наверное дальше сам сообразишь.
CREATE OR ALTER PROCEDURE COPYORDER (
fromcdorder integer,
tocdorder integer,
flags integer = 0)
as
declare variable cdthing integer;
declare variable cdmsh integer;
declare variable comment varchar(255);
declare variable price double precision;
declare variable nds double precision;
declare variable nds_p double precision;
declare variable pricesumm double precision;
declare variable cdasklist integer;
declare variable cellcount integer;
declare variable fromcdmainal integer;
declare variable tocdmainal integer;
declare variable addhand integer;
declare variable c integer;
declare variable cdmain integer;
declare variable oldcode char(6);
declare variable tarif_p double precision;
declare variable tarif_summ double precision;
declare variable fromcdspecver integer;
declare variable tocdspecver integer;
declare variable cdmain2 integer;
declare variable howmany double precision;
declare variable numcell varchar(100);
declare variable cdmaincell integer;
declare variable fromcdspecref integer;
declare variable tocdspecref integer;
declare variable fromcdspecvercell integer;
declare variable tocdspecvercell integer;
declare variable options integer;
declare variable fromvalue0 varchar(255);
declare variable tovalue0 varchar(255);
declare variable cdmain1 integer;
declare variable cdchk integer;
declare variable value1 varchar(255);
declare variable value2 varchar(255);
declare variable from_annotate blob sub_type 1 segment size 80;
declare variable obozncell varchar(100);
declare variable dogorder varchar(100);
declare variable cdasklistfield integer;
declare variable cell integer;
declare variable cdspecver integer;
declare variable cdspecvernew integer;
declare variable cdnmclparam integer;
declare variable cdspecref integer;
begin
select cdThing, cdMsh, HowMany, Comment, Price, NDS, NDS_P, cdMainAL,
PriceSumm, cdAskList, CellCount, Options, Annotate
from OrderRef
where cdOrder = :FromcdOrder
into :cdThing, :cdMsh, :HowMany, :Comment, :Price, :NDS, :NDS_P,
:FromcdMainAL,
:PriceSumm, :cdAskList, :CellCount, :Options, :From_Annotate;
delete from OrderTarifList where cdOrder = :TocdOrder;
for select cdMain, Tarif_P, Tarif_Summ
from OrderTarifList
where cdOrder = :FromcdOrder
into :cdMain, :Tarif_P, :Tarif_Summ
do
insert into OrderTarifList (cdOrder, cdMain, Tarif_P, Tarif_Summ)
values (:TocdOrder, :cdMain, :Tarif_P, :Tarif_Summ);
update OrderRef
set cdThing = :cdThing,
cdMsh = :cdMsh,
HowMany = :HowMany,
Comment = :Comment,
Price = :Price,
NDS = :NDS,
NDS_P = :NDS_P,
PriceSumm = :PriceSumm,
cdAskList = :cdAskList,
CellCount = :CellCount,
Options = :Options,
Annotate = :From_Annotate
where cdOrder = :TocdOrder;
Delete from AskListMainFields where cdOrder = :TocdOrder;
end