Upload files to "/"
This commit is contained in:
60
fnc_26ai_censo_vpd.sql
Normal file
60
fnc_26ai_censo_vpd.sql
Normal file
@@ -0,0 +1,60 @@
|
||||
create or replace FUNCTION fnc_26ai_censo_vpd (
|
||||
schema_name IN VARCHAR2,
|
||||
object_name IN VARCHAR2
|
||||
) RETURN VARCHAR2
|
||||
AS
|
||||
/*
|
||||
|
||||
Criado por: fernando.leal@oracle.com
|
||||
Data: Oct/2025
|
||||
Objetivo: demonstrar casos de uso do Oracle AI Database 26ai
|
||||
|
||||
v1 - funcao de VPD para demonstracao de dados Censo - leal
|
||||
|
||||
Pre req:
|
||||
|
||||
-- como ADMIN
|
||||
grant CREATE ANY CONTEXT to aichat1
|
||||
|
||||
-- como AICHAT1
|
||||
CREATE CONTEXT CTX_26AI_RLS USING pkg_26AI_CENSO_RLS;
|
||||
|
||||
CREATE OR REPLACE PACKAGE pkg_26AI_CENSO_RLS AS
|
||||
PROCEDURE set_user(p_user IN VARCHAR2);
|
||||
END;
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY pkg_26AI_CENSO_RLS AS
|
||||
|
||||
PROCEDURE set_user(p_user IN VARCHAR2) IS
|
||||
BEGIN
|
||||
DBMS_SESSION.SET_CONTEXT(
|
||||
namespace => 'CTX_26AI_RLS',
|
||||
attribute => 'SESSION_USER',
|
||||
value => p_user
|
||||
);
|
||||
END;
|
||||
|
||||
END ;
|
||||
|
||||
-- teste
|
||||
BEGIN
|
||||
pkg_26AI_CENSO_RLS.set_user('ADMIN');
|
||||
END;
|
||||
|
||||
SELECT SYS_CONTEXT('CTX_26AI_RLS','SESSION_USER') ;
|
||||
|
||||
|
||||
*/
|
||||
l_predicate VARCHAR2(4000);
|
||||
BEGIN
|
||||
|
||||
pkg_26AI_CENSO_RLS.set_user( trim(lower(V('APP_USER'))) );
|
||||
|
||||
-- Build a predicate that filters by allowed operation codes for current user
|
||||
l_predicate := ' UF IN (SELECT UF FROM TB_26AI_CENSO_VPD WHERE trim(lower(username)) = ''' || SYS_CONTEXT('CTX_26AI_RLS','SESSION_USER') || ''')';
|
||||
|
||||
--insert into tb_test values( l_predicate );
|
||||
|
||||
RETURN l_predicate;
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user