sql – 如何在Firebird存储过程或执行块中使用变量引用已绑定的

请举例说明如何在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^

dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。