The CANONICALIZE procedure performs various operations on an input string.
EXECUTE privilege on the DBMS_UTILITY module.
SET SERVEROUTPUT ON@
CREATE OR REPLACE PROCEDURE canonicalize(
IN p_name VARCHAR(4096),
IN p_length INTEGER DEFAULT 30)
BEGIN
DECLARE v_canon VARCHAR(100);
CALL DBMS_UTILITY.CANONICALIZE(p_name, v_canon, p_length);
CALL DBMS_OUTPUT.PUT_LINE('Canonicalized name ==>' || v_canon || '<==');
CALL DBMS_OUTPUT.PUT_LINE('Length: ' || LENGTH(v_canon));
END@
CALL canonicalize('Identifier')@
CALL canonicalize('"Identifier"')@
CALL canonicalize('"_+142%"')@
CALL canonicalize('abc.def.ghi')@
CALL canonicalize('"abc.def.ghi"')@
CALL canonicalize('"abc".def."ghi"')@
CALL canonicalize('"abc.def".ghi')@
SET SERVEROUTPUT ON
DB20000I The SET SERVEROUTPUT command completed successfully.
CREATE OR REPLACE PROCEDURE canonicalize(
IN p_name VARCHAR(4096),
IN p_length INTEGER DEFAULT 30)
BEGIN
DECLARE v_canon VARCHAR(100);
CALL DBMS_UTILITY.CANONICALIZE(p_name, v_canon, p_length);
CALL DBMS_OUTPUT.PUT_LINE('Canonicalized name ==>' || v_canon || '<==');
CALL DBMS_OUTPUT.PUT_LINE('Length: ' || LENGTH(v_canon));
END
DB20000I The SQL command completed successfully.
CALL canonicalize('Identifier')
Return Status = 0
Canonicalized name ==>IDENTIFIER<==
Length: 10
CALL canonicalize('"Identifier"')
Return Status = 0
Canonicalized name ==>Identifier<==
Length: 10
CALL canonicalize('"_+142%"')
Return Status = 0
Canonicalized name ==>_+142%<==
Length: 6
CALL canonicalize('abc.def.ghi')
Return Status = 0
Canonicalized name ==>"ABC"."DEF"."GHI"<==
Length: 17
CALL canonicalize('"abc.def.ghi"')
Return Status = 0
Canonicalized name ==>abc.def.ghi<==
Length: 11
CALL canonicalize('"abc".def."ghi"')
Return Status = 0
Canonicalized name ==>"abc"."DEF"."ghi"<==
Length: 17
CALL canonicalize('"abc.def".ghi')
Return Status = 0
Canonicalized name ==>"abc.def"."GHI"<==
Length: 15