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