请给我一个例子如何在Firebird存储过程或execute block
中引用变量字段名
类似下面的伪SQL:
Insert into tab1 (1, f1, f2, f3)
select 1, tab2.f+var_loop, tab2.f+var_loop, tab2.f+var_loop
from tab2
where .....
其中"f"是字段名的首字母,"var_loop"是循环变量
我仍然不太清楚你想要实现什么,但在PSQL中也有EXECUTE STATEMENT功能,这可能适合你的需要-它允许你建立一个字符串,然后执行它作为一个DSQL语句…假设示例中的var_loop
是整数那么代码可能是
CREATE PROCEDURE Foo(var_loop INTEGER)
AS
DECLARE Stmnt VARCHAR(1024);
BEGIN
Stmnt = 'Insert into tab1 (1, f1, f2, f3)'||
'select 1, tab2.f'|| CAST(var_loop AS VARCHAR(10)) ||
', tab2.f'|| CAST(var_loop AS VARCHAR(10)) ||
', tab2.f'|| CAST(var_loop AS VARCHAR(10)) ||
'from tab2 where(...)';
EXECUTE STATEMENT Stmnt;
END^