Firebird:使用全局变量

gio*_*ano 3 sql firebird

我想为 firebird 中的 sql 代码中使用的变量分配一个值。MySQL 代码为:

SET @x = 1;
SELECT @x;
Run Code Online (Sandbox Code Playgroud)

对应的 Firebird 代码是什么?

感谢帮助。

yon*_*joy 5

要在 Firebird 中定义用户定义的特定于会话的变量,您可以使用rdb$set_context

MySql 示例的相应 Firbird 代码为:

select rdb$set_context('USER_SESSION', 'x', 1) from rdb$database
select rdb$get_context('USER_SESSION', 'x') from rdb$database
Run Code Online (Sandbox Code Playgroud)

笔记:

1.) 请注意变量名称区分大小写。

2.) 内部变量值与数据类型一起存储VARCHAR(255),因此转换为VARCHAR(255)!!

3.) 变量的最大数量为 1000。

4.) 您不需要参考rdb$database

select rdb$get_context('USER_SESSION', 'x') from some_table_name
Run Code Online (Sandbox Code Playgroud)

也可以。