Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
Purpose
Contains functions that retrieve factor identities. After Oracle Database Vault installation, the install process locks the DVF account to enhance security.
When creating a new factor, Database Vault creates a new retrieval function for the factor owned by the DVF schema.
The demo, at right, is from $ORACLE_HOME/rdbms/admin/catmact.sql reformatted for readability since no one has taught developers at Oracle how to format their code.
dbms_macsec_function.create_factor_function(p_factor IN VARCHAR2);
BEGIN
FOR c99 IN (SELECT id# , name, get_expr FROM dvsys.factor$) LOOP
l_exp := c99.get_expr;
l_name := c99.name;
BEGIN
-- if invalid factor name, then no need to create the factor function
IF (LENGTH(l_name) > 126) THEN
dvsys.dbms_macutl.raise_error(47951,'factor_name');
END IF;
sys.dbms_utility.canonicalize(
sys.dbms_assert.simple_sql_name(
dvsys.dbms_macutl.to_oracle_identifier(l_name)), l_canon_name, 126);
IF (LENGTH(l_canon_name) > 126) THEN
dvsys.dbms_macutl.raise_error(47951, 'factor_name');
END IF;
dvf.dbms_macsec_function.create_factor_function(l_name);
EXCEPTION
WHEN OTHERS THEN
sys.dbms_output.put_line('sddvffnc: factor='||l_name||',error='||sqlerrm);
END;
END LOOP;
END;
/