Code Conversion - Oracle Performance Review Messages

SSC-PRF-OR0002

The generated DBMS_OUTPUT helper logs to a table on each call, which may impact performance.

Description

Snowflake has no native equivalent of Oracle’s DBMS_OUTPUT server-side buffer. To preserve diagnostic output, SnowConvert AI translates DBMS_OUTPUT calls to generated helper procedures — DBMS_OUTPUT.PUT_LINE_UDP, DBMS_OUTPUT.PUT_UDP, and DBMS_OUTPUT.NEW_LINE_UDP — that write each message to a logging table.

Because every call performs a table write, using DBMS_OUTPUT inside loops or high-frequency code paths can noticeably impact performance. This message is emitted so that diagnostic output calls that are not required in Snowflake can be removed. It replaces the previous SSC-FDM-OR0035 marker on these calls, and PUT / NEW_LINE no longer emit SSC-EWI-OR0076.

Code Example

Input Code:

CREATE OR REPLACE PROCEDURE dbms_output_put_proc
IS
BEGIN
    DBMS_OUTPUT.PUT('COLUMN: FRM_STATUS_G__C ');
END;

Generated Code:

CREATE OR REPLACE PROCEDURE dbms_output_put_proc ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
  BEGIN
    --** SSC-PRF-OR0002 - THE GENERATED DBMS_OUTPUT HELPER LOGS TO A TABLE ON EACH CALL, WHICH MAY IMPACT PERFORMANCE. REMOVE DIAGNOSTIC OUTPUT CALLS THAT ARE NOT REQUIRED. **
    CALL DBMS_OUTPUT.PUT_UDP('COLUMN: FRM_STATUS_G__C ');
  END;
$$;

Best Practices

  • Remove DBMS_OUTPUT calls that were used only for debugging or tracing and are not required in the migrated code.
  • Where diagnostic output must be kept, avoid placing DBMS_OUTPUT calls inside loops or frequently executed branches to minimize the per-call table writes.
  • For additional assistance, please email us at snowconvert-support@snowflake.com