![]() |
Oracle
JDeveloper 10g for Forms &
PL/SQL
Developers
|
|
| Chapter | 15 | |
| Section | Loading Audit Columns Using a Database Procedure and Application Context | Create the Database Objects | |
| Code | Script to create Context and security package | |
| Return to listings... | ||
CREATE CONTEXT hr_context USING security_pkg;
CREATE OR REPLACE PACKAGE security_pkg
IS
PROCEDURE set_security_context (
p_username IN VARCHAR2,
p_application IN VARCHAR2 DEFAULT 'TUHRA');
FUNCTION logged_in_user
RETURN VARCHAR2;
END security_pkg;
/
CREATE OR REPLACE PACKAGE BODY security_pkg
IS
PROCEDURE set_security_context (
p_username IN VARCHAR2,
p_application IN VARCHAR2 DEFAULT 'TUHRA')
IS
BEGIN
-- Write the user info into the context area
SYS.DBMS_SESSION.set_context ('HR_CONTEXT', 'APP_USERNAME', p_username);
EXCEPTION
WHEN OTHERS
THEN RAISE_APPLICATION_ERROR(-20001,
'Error in SECURITY_PKG.SET_SECURITY_CONTEXT: ' || SQLERRM);
END;
FUNCTION logged_in_user
RETURN VARCHAR2
IS
v_username VARCHAR2(100);
BEGIN
v_username := UPPER(SYS_CONTEXT('HR_CONTEXT', 'APP_USERNAME'));
RETURN v_username;
EXCEPTION
WHEN OTHERS
THEN RETURN 'Error in LOGGED_IN_USER';
END;
END security_pkg;
/