请举例说明如何在FireBird存储过程或执行块中引用带变量的字段名称
像这样的伪SQL:
Insert into tab1 (1,f1,f2,f3) select 1,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,f3)'|| 'select 1,tab2.f'|| CAST(var_loop AS VARCHAR(10)) || ',tab2.f'|| CAST(var_loop AS VARCHAR(10)) || 'from tab2 where(...)'; EXECUTE STATEMENT Stmnt; END^