在APEX的PL/SQL类型的Processes中,可以使用绑定变量的语法来读写session state值。如:
想要在存储程序中写入session值,就得借助APEX_UTIL包中的过程set_session_state。如:
:PX_MY_ITEM := 'something'; -- 写
l_my_local_variable := :PX_MY_ITEM; -- 读
如果是在存储程序中,就不能使用绑定变量的语法了,这个时候可以使用v('PX_MY_ITEM')或nv('PX_MY_ITEM')语法进行读取,不过这种方式仅限于读,不可以写。想要在存储程序中写入session值,就得借助APEX_UTIL包中的过程set_session_state。如:
APEX_UTIL.set_session_state(
p_name => 'PX_MY_ITEM'
, p_value => 'something');
参考文章内容见:http://atulley.wordpress.com/2007/05/17/apex-setting-session-state-from-within-a-plsql-packageprocedurefunction/
PS: 如果访问一个从未设置过的键值,结果就为null。