1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| SET TERM ^ ;
create or alter procedure NEW_PROCEDURE
returns (
VALUE1 numeric(15,2),
SQL varchar(400))
as
declare variable FIELD_NAME1 varchar(100);
declare variable FIELD_VALUE1 varchar(100);
declare variable FORMULA_VALUE1 varchar(400);
declare variable FORMULA_NAME1 varchar(100);
declare variable FORMULA_VALUE2 varchar(400);
declare variable FORMULA_NAME2 varchar(400);
begin
for select Formula_Name, Formula_Value FROM Table2 into :Formula_Name1, :Formula_Value1 do
Begin
while ((select Out_field from check_field(:Formula_Value1)) =1) do
begin
For select Formula_Name, Formula_Value FROM Table2
Where (position(Formula_name, :Formula_Value1) > 0)
into :Formula_Name2, :Formula_Value2 do
begin
formula_value1 = replace(:Formula_Value1, :Formula_Name2, '('||cast(:Formula_Value2 as varchar(40))||')');
end
For select Field_Name, Field_Value from table1
Where (position(Field_name, :Formula_Value1) > 0)
into :Field_Name1, :Field_Value1 do
begin
formula_value1 = replace(:Formula_Value1, :Field_Name1, '('||cast(:Field_Value1 as varchar(40))||')');
end
end
sql = 'SELECT ' || :Formula_Value1 || ' from RDB$DATABASE' ;
execute statement sql into :value1;
end
suspend;
end
^
SET TERM ; ^ |
Partager