如何在Firebird存储过程或执行块中使用变量引用字段名



请给我一个例子如何在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^

相关内容

  • 没有找到相关文章

最新更新