Descripción: Recupera el valor de una variable de contexto desde uno de los namespaces SYSTEM, USER_SESSION y USER_TRANSACTION

Tipo de resultado: Varchar(255)

Sintaxis:

RDB$GET_CONTEXT(‘namespace’, ‘nombre_variable’)

<namespace> = SYSTEM | USER_SESSION | USER_TRANSACTION

<nombre_variable> = una cadena alfanumérica que distingue mayúsculas de minúsculas y máximo 80 caracteres

Variables de contexto en el namespace SYSTEM

|-----------------------------------------------------------------------------------------------------------------|
| DB_NAME          La ruta completa a la Base de Datos o su alias                                                 |
| NETWORK_PROTOCOL El protocolo usado para la conexión: 'TCPv4', 'WNET', 'XNET', o NULL                           |
| CLIENT_ADDRESS   Para TCPv4 es su dirección IP. Para XNET es el ID del proceso local. Para los demás es NULL    |
| CURRENT_USER     Mismo que la variable global CURRENT_USER                                                      |
| CURRENT_ROLE     Mismo que la variable global CURRENT_ROLE                                                      |
| SESSION_ID       Mismo que la variable global CURRENT_CONNECTION                                                |
| TRANSACTION_ID   Mismo que la variabla global CURRENT_TRANSACTION                                               |
| ISOLATION_LEVEL  El nivel de aislamiento de la transacción actual: 'READ COMMITED', 'SNAPSHOT', o 'CONSISTENCY' |
| ENGINE VERSION   El número de la versión del Firebird                                                           |
|-----------------------------------------------------------------------------------------------------------------|

Ejemplos:

SELECT
   RDB$GET_CONTEXT('SYSTEM', 'DB_NAME')
FROM
   RDB$DATABASE

NEW.DIRECCION_USUARIO = RDB$GET_CONTEXT('SYSTEM', 'CLIENT_ADDRESS')

INSERT INTO MiTabla
   (MiCampo)
   VALUES(RDB$GET_CONTEXT('USER_SESSION', 'MiVariable')

Artículo relacionado:

https://firebird21.wordpress.com/2013/04/14/rdbset_context/