Reputation: 3152
I would like to assign a value to a variable which is used in an sql code in firebird. The MySQL-Code would be:
SET @x = 1;
SELECT @x;
What is the correspondent Firebird-Code?
Thanks for help.
Upvotes: 3
Views: 3047
Reputation: 5566
To define a user-defined session-specific variable in Firebird you can use rdb$set_context.
The correspondent Firbird-code for your MySql-example would be:
select rdb$set_context('USER_SESSION', 'x', 1) from rdb$database
select rdb$get_context('USER_SESSION', 'x') from rdb$database
Notes:
1.) Be aware that variable names are case-sensitive.
2.) Internally variable values are stored with datatype VARCHAR(255)
and thus casted to VARCHAR(255)
!!
3.) The maximum number of variables is 1000.
4.) You don't need to refer to rdb$database
:
select rdb$get_context('USER_SESSION', 'x') from some_table_name
would work as well.
Upvotes: 5
Reputation: 149030
I'm no expert in Firebird, but I believe it would be something like this...
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 ; ^
Upvotes: 3