Mas*_*ler 6 firebird stored-procedures
在MS SQL Server中,您可以声明任何基本类型或表类型的局部变量.此表是可以运行一个普通的表SELECT,INSERT,UPDATE和DELETE上,就像任何其他表,但它是一个局部变量,而不是数据库本身的一部分.
我试图在Firebird中做同样的事情,但它似乎不喜欢语法.
declare variable value int; --works fine
declare variable values table (value int); --Error: "Token unknown (table)"
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?(和任何人说,之前的"使用可选的存储过程,"这是行不通的.我需要的东西,我可以动态运行INSERT和SELECT对.)
jac*_*ate 13
Firebird不像SQL Server那样支持表变量.
您可以随意使用的全球临时表(需要Firebird 2.1或更高版本)
(v.2.1)全局临时表(GTT)是存储在具有永久元数据但具有临时数据的系统目录中的表.来自不同连接(或事务,取决于范围)的数据彼此隔离,但GTT的元数据在所有连接和事务之间共享.
GTT有两种:
数据在引用指定GTT的连接的生命周期内持续存在; 和
数据仅在引用事务的生命周期内持续存在.
你必须事先创建GTT.
CREATE GLOBAL TEMPORARY TABLE
...
[ON COMMIT <DELETE | PRESERVE> ROWS]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3886 次 |
| 最近记录: |