我得到下面的錯誤而執行代碼PLSQL程序錯誤
create or replace
function contact_restriction_function(obj_schema varchar2, obj_name varchar2)
return varchar2 is
v_contact_info_visible hr_user_access.contact_info_visible%type;
begin
-- Here you can put any business logic for filtering
select nvl(max(contact_info_visible),'N')
into v_contact_info_visible
from hr_user_access
where user_name = user;
-- SQL filter/policy predicate
return ''''||v_contact_info_visible||''' = ''Y'' ';
end;
/
後顯示誤差修改命令我得到這個
show errors Errors for FUNCTION CONTACT_RESTRICTION: LINE/COL ERROR -------- ----------------------------------------------------------------- 3/1 PLS-00103: Encountered the symbol "?" when expecting one of the following: begin function pragma procedure subtype type current cursor delete exists prior external language
這是剩下的代碼:下面
begin
dbms_rls.add_policy(object_schema => 'HR' ,
object_name => 'EMPLOYEES' ,
policy_name => 'Contact_Restriction_Policy' ,
policy_function => 'contact_restriction_function' ,
sec_relevant_cols=>'EMAIL,PHONE_NUMBER'Contact Info ,
sec_relevant_cols_opt=>dbms_rls.all_rows);
end;
是我之前執行的實際代碼顯示錯誤:
create or replace function contact_restriction(obj_schema varchar2, obj_name varchar2)
return varchar2
is
v_contact_info_visible IN user_access.contact_info_visible%type;
begin
select nvl(max(contact_info_visible),'N')
into v_contact_info_visible
from user_access where username = user;
return 'v_contact-info_visible ='|| 'Y';
end;
因爲沒有「?」你發佈的代碼中的字符我發現很難診斷這個問題。也許還有一些其他代碼沒有包含在內? –
這是剩餘的代碼 – user3391904
開始 DBMS_RLS.ADD_POLICY(object_schema => 'HR' ,則object_name => '僱員' ,POLICY_NAME => 'Contact_Restriction_Policy' ,policy_function => 'contact_restriction_function' ,sec_relevant_cols =>'EMAIL ,PHONE_NUMBER'Contact Info ,sec_relevant_cols_opt => dbms_rls.all_rows); 結束; / – user3391904