3

我想为 firebird 的 sql 代码中使用的变量赋值。MySQL 代码将是:

SET @x = 1;
SELECT @x;

对应的火鸟代码是什么?

感谢帮助。

4

2 回答 2

4

要在 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

笔记:

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

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

3.) 最大变量数为 1000。

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

select rdb$get_context('USER_SESSION', 'x') from some_table_name

也可以。

于 2015-04-22T09:31:20.190 回答
3

我不是火鸟方面的专家,但我相信它会是这样的......

set term ^ ;

EXECUTE BLOCK
AS
DECLARE VARIABLE x int;
BEGIN
  x = 1; 
  --do whatever you want with x, there's no such thing 
  --as to select the variable value to print it
END
^

set term ; ^
于 2013-03-21T22:19:04.107 回答