Firebird存储过程数组数据类型

时间:2014-01-21 15:03:39

标签: sql stored-procedures firebird

我正在尝试解决Firebird存储过程中的问题。我需要从表中读取一些记录,(FOR SELECT ... BEGIN END),并在更改后,将其中的一些记录插回到BEGIN END循环中的同一个表(新记录)中。

  • 除非我误解它,最简单的方法是使用光标,但我无法通过反复试验或从互联网上找到如何做到这一点。

    < / LI>
  • 另一种方法是使用内存中的数组(不是表数据类型,而是在存储过程中声明的PSQL数据类型)。问题与上述相同。

  • 第三个似乎是使用全局临时表 - 遗憾的是它们似乎不能在带有'普通'表的单个SQL语句中使用,所以我无法将结果复制到原始表表

  • 最后的方法是创建一个表并将其用作中介 - 我只是不喜欢这种方法。如果没有其他解决方案,我会这样做

简而言之,任何人都可以帮我解决如何从表中选择一些行(在选择中使用其他表),并回写到同一个表中吗?

感谢

史蒂夫

ps只做FOR SELECT BEGIN ... INSERT ... END导致一个永无止境的循环。

1 个答案:

答案 0 :(得分:1)