RDB$SET_CONTEXT()
Creates, sets or clears a variable in one of the user-writable namespaces
INTEGER
RDB$SET_CONTEXT ('<namespace>', <varname>, <value> | NULL) <namespace> ::= USER_SESSION | USER_TRANSACTION <varname> ::= A case-sensitive quoted string of max. 80 characters <value> ::= A value of any type, as long as it's castable to a VARCHAR(255)
Parameter | Description |
---|---|
namespace |
Namespace |
varname |
Variable name.Case-sensitive.Maximum length is 80 characters |
value |
Data of any type provided it can be cast to |
The USER_SESSION
and USER_TRANSACTION
namespaces are initially empty.A user can create and set variables with RDB$SET_CONTEXT()
and retrieve them with [fblangref50-scalarfuncs-get-context].The USER_SESSION
context is bound to the current connection, the USER_TRANSACTION
context to the current transaction.
-
When a transaction ends, its
USER_TRANSACTION
context is cleared. -
When a connection is closed, its
USER_SESSION
context is cleared. -
When a connection is reset using
ALTER SESSION RESET
, theUSER_TRANSACTION
andUSER_SESSION
contexts are cleared.
The function returns 1
when the variable already existed before the call and 0
when it didn’t.To remove a variable from a context, set it to NULL
.If the given namespace doesn’t exist, an error is raised.Both namespace and variable names must be entered as single-quoted, case-sensitive, non-NULL
strings.
Note
|
|
select rdb$set_context('USER_SESSION', 'MyVar', 493) from rdb$database
rdb$set_context('USER_SESSION', 'RecordsFound', RecCounter);
select rdb$set_context('USER_TRANSACTION', 'Savepoints', 'Yes')
from rdb$database