コードの実行中に以下のエラーが発生します
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 erros コマンドの後、私はこれを得ました
エラーを表示 FUNCTION CONTACT_RESTRICTION のエラー: LINE/COLエラー -------- ---------------------------------------------- ----------------------- 3/1 PLS-00103: 記号「?」が見つかりました。のいずれかを期待するとき 続く: begin 関数プラグマ プロシージャ サブタイプ タイプ 現在のカーソルの削除 以前の外部言語が存在する
これは残りのコードです:
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;