我想在包和过程中使用原始数据的已编辑列,但是只有在程序中如何使用实际数据时,它才会显示已编辑的列? 在下面的示例中,ename是已编辑的列,并被完全编辑为空。
BEGIN DBMS_REDACT.add_policy(
object_schema => 'hr',
object_name => 'new_emp',
column_name => 'ename',
policy_name => 'redact_ename_info',
function_type => DBMS_REDACT.full,
expression => '1=1' );END;/ --Redaction is done for ename column in new_emp table.
create or replace procedure new_emp_pro(cust_id in varchar2) as
v_ename varchar2(200):=null;
begin
select ename into v_ename from new_emp where empid=cust_id;
dbms_output.put_line('v_ename :'||v_ename);
end;
/
PL/SQL procedure successfully completed.
v_ename :
答案 0 :(得分:0)
您想要做的是,您已经为所有用户编辑了列ename,因此当您尝试打印该列时,系统将不会显示该值,因为这是编辑的目的。内部ename值将可用于处理,但在所有处理之后将应用修订。如果您能够打印ename,则整个编辑目的都将失败,因为最终用户可以检索数据。
您可以检查ename是否为空
如果您需要更多详细信息,请告诉我。我最近在生产数据库中实现了修订。