Help Center/
    
      
      Database and Application Migration UGO/
      
      
        
        
        User Guide/
        
        
        Syntax Conversion/
        
        
        Risky Custom Functions/
        
        
        Replacing Custom Oracle Functions with GaussDB Functions/
        
      
      userenv
    
  
  
    
        Updated on 2025-06-07 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
userenv
Database Type and Version
- Source database type and version: all Oracle versions
 - Target database type and version: all GaussDB versions
 
Function replacement syntax:
CREATE OR REPLACE FUNCTION dsc_ora_ext.dsc_fn_userenv
/* This function is used to retrieve information about the current session. 
   Currently the "sid" and "client_info" are supported.
*/
     ( i_session_attr   IN     VARCHAR(32) ) 
RETURN VARCHAR(64)
AS
    v_session_attr             VARCHAR(32);
    v_session_attr_value       VARCHAR(64);
BEGIN
    v_session_attr  := TRIM(i_session_attr);
    IF v_session_attr IS NULL
    THEN
        RAISE EXCEPTION 'Empty string/NULL is an invalid USERENV parameter';
    ELSE
        v_session_attr	:= UPPER(v_session_attr);
        IF v_session_attr = 'SID'
        -- if session id is required
        THEN
            v_session_attr_value := pg_catalog.pg_backend_pid();
        ELSIF v_session_attr = 'CLIENT_INFO'
        -- it returns the session's application_name, which is set using set application_name='<<CLIENT APPLICATION NAME>>'
        THEN
            SELECT s.application_name 
              INTO v_session_attr_value
              FROM pg_catalog.pg_stat_activity s
             WHERE s.pid 	= pg_catalog.pg_backend_pid();
        ELSIF v_session_attr = 'SESSION_USER'
        -- if session user name is required
        THEN
            v_session_attr_value := session_user;
		ELSIF v_session_attr IN ( 'INSTANCE', 'ENTRYID', 'ISDBA', 'LANG', 'LANGUAGE', 'SESSIONID', 'TERMINAL' )
        -- if other valid Oracle parameter is passed
        THEN
            RAISE EXCEPTION '% is an unsupported USERENV parameter', i_session_attr;
        ELSE
        -- if invalid parameter is passed
           RAISE EXCEPTION '% is an invalid USERENV parameter', i_session_attr;
        END IF;
    END IF;
    RETURN v_session_attr_value;
END;
   Parent topic: Replacing Custom Oracle Functions with GaussDB Functions
  
 Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
                The system is busy. Please try again later.
                
            
        For any further questions, feel free to contact us through the chatbot.
Chatbot