3

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.

2 Answers 2

5

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.

Sign up to request clarification or add additional context in comments.

Comments

3

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 ; ^

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.