Oracle v()与nv()函数

时间:2019-10-08 18:15:45

标签: sql oracle plsql oracle-apex

oracle apex中的v()和nv()函数有什么区别?

我碰到了nv()函数,我唯一能让Google吐出的东西就是nvl()函数。

apex_custom_auth.post_login(   
                p_uname      => l_authenticated_username,  
                p_session_id => nv('APP_SESSION'),  
                p_app_page   =>
apex_application.g_flow_id||':'||nvl(apex_application.g_flow_step_id,0));

3 个答案:

答案 0 :(得分:3)

nv返回数字而不是字符串(因此很显然,它仅适用于数字属性)。如果使用v返回数字值,有时可能会遇到与数据类型转换有关的性能问题。

请参见Syntax for referencing item values

答案 1 :(得分:2)

  

GET_NUMERIC_SESSION_STATE函数

     

此函数返回数字项目的数字值。您可以使用   无论您在哪里,Oracle Application Express应用程序中的此功能   可以使用PL / SQL或SQL。您还可以在   APEX_UTIL.GET_NUMERIC_SESSION_STATE的位置。

有关更多信息,请参见Oracle Application Express APIs

答案 2 :(得分:0)

而不是调用 APEX_APPLICATION.G_USER(它显示当前登录的用户) 你可以很容易地调用 v('APP_USER') 所以据我说,它就像一个评估器函数,可以让你轻松获取 Apex 全局变量的值。 所以这些是等价的。

v('APP_SESSION')
APEX_APPLICATION.get_session_id

Check Oracle APEX global variables

NV('APP_CURRENT_LOGGED_USERS_HIGH) 处理数值,(以 APEX 中用户定义的全局变量为例)