使用执行块使用列名参数插入数据的示例

时间:2011-10-15 21:26:22

标签: sql firebird

我不知道这是否可行,但我正在寻找使用执行块执行Insert语句并使用列名参数插入数据的任何示例

伪代码:

  While loop_counter begin

    Insert into table1 (f1+loop_counter, f2+loop_counter, f3+loop_counter, f4+loop_counter)
      values (#,#,#,#)
 end

其中“f”是字段名称的第一个首字母,“loop_counter”是循环变量

由于

1 个答案:

答案 0 :(得分:1)

您需要在EXECUTE STATEMENT运算符中。尝试这样的事情:

EXECUTE BLOCK
AS
  DECLARE VARIABLE s VARCHAR(200);
  ...
BEGIN
  ...
  WHILE (<some condition with loop_counter>) DO 
  BEGIN
    s = 'INSERT INTO TABLE1 (F1' || 
      loop_counter || ', F2' ||
      loop_counter || ',F3' || 
      loop_counter || ',F4' || 
      loop_counter || ') VALUES (?, ?, ?, ?)';
    EXECUTE STATEMENT (:S) (#,#,#,#);
    ...
  END
  ...
END
相关问题