Select ColA
FROM FA_BOOK_CONTROLS FBC,FA_MC_BOOK_CONTROLS FMCBC 
WHERE FBC.BOOK_TYPE_CODE = FMCBC.BOOK_TYPE_CODE 
AND FBC.SET_OF_BOOKS_ID = FMCBC.PRIMARY_SET_OF_BOOKS_ID 
AND FMCBC.SET_OF_BOOKS_ID = nVL(TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'),45,10)),-1);
在Oracle视图中看到有个如上的视图,我用此句去查询时,没有结果。
但当oralce report 用到此视图,在oracle application运行报表时,有时能找到值,有时不能找到值,为什么?
USERENV('CLIENT_INFO')是什么意思?我在网上查了,都说得不明白。
 

解决方案 »

  1.   

    捕获登录计算机的用户名的方法是USERENV('CLIENT_INFO')
      

  2.   

    可是为何我用同计算机同一用户登录,有时能找到,有时找不到?
    按“捕获登录计算机的用户名的方法是USERENV('CLIENT_INFO')”这个说法,不是一样吗?
      

  3.   

    userenv 用于返回当前用户环境的信息。
    可以通过
    exec sys.dbms_application_info.set_client_info('SomeThing');
    来设置client_info。
    然后用
    select userenv('CLIENT_INFO') from dual;
    贴中说有时候找不到这个值,应该是有时候没设置引起的吧。
      

  4.   

    USERENV('CLIENT_INFO')
    返回当前连接的客户端用户的相关信息
      

  5.   

    Returns up to 64 bytes of user session information that can be stored by an application using the DBMS_APPLICATION_INFO package.返回被DBMS_APPLICATION_INFO包设置的最大64字节的oracle用户信息。
    SQL> execute DBMS_APPLICATION_INFO.set_client_info(100);PL/SQL 过程已成功完成。SQL> select userenv('client_info') from dual;USERENV('CLIENT_INFO')
    ----------------------------------------------------------------
    100SQL>