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

前端之家收集整理的这篇文章主要介绍了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^

猜你在找的MsSQL相关文章