SET SERVEROUTPUT ON;
SET ECHO ON;
SET TIMING ON;
DECLARE
V_SERVER_HOST CONSTANT VARCHAR2(100) := LOWER(SYS_CONTEXT('USERENV','SERVER_HOST'));
V_SESSION_USER CONSTANT VARCHAR2(100) := LOWER(SYS_CONTEXT('USERENV','SESSION_USER'));
V_INSTANCE_NAME CONSTANT VARCHAR2(100) := LOWER(SYS_CONTEXT('USERENV','INSTANCE_NAME'));
V_SERVICE_NAME CONSTANT VARCHAR2(100) := LOWER(SYS_CONTEXT('USERENV','INSTANCE_NAME'));
-- Constantes para os valores fixos
v_COD CONSTANT produto_exercicio.cod%type := '32223';
v_DESCRICAO CONSTANT produto_exercicio.descricao%type := 'Sabor de Verão - Uva - 1 Litro';
v_CATEGORIA CONSTANT produto_exercicio.categoria%type := 'Sucos de Frutas';
-- Mensagens de erro
V_ROLLBACK_MSG CONSTANT VARCHAR2(100) := 'Realizando Rollback.';
V_ERROR_MSG CONSTANT VARCHAR2(100) := 'Erro na execução do script';
BEGIN
DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE('Início Script.: ' || TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS')
|| ' - ' || V_SESSION_USER|| '@' || V_INSTANCE_NAME|| '/' || V_SERVICE_NAME|| '(' || V_SERVER_HOST ||')');
DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------');
INSERT INTO PRODUTO_EXERCICIO (COD, DESCRICAO, CATEGORIA) VALUES (v_COD, REPLACE(v_DESCRICAO, '-', '>'), v_CATEGORIA);
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' linha(s) inserida(s).');
COMMIT;
DBMS_OUTPUT.PUT_LINE('Script executado com sucesso.');
DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE('Fim Script.: ' || TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS')
|| ' - ' || V_SESSION_USER|| '@' || V_INSTANCE_NAME|| '/' || V_SERVICE_NAME|| '(' || V_SERVER_HOST ||')');
DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(V_ROLLBACK_MSG);
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(V_ERROR_MSG || ': [' || SQLERRM || '].');
DBMS_OUTPUT.PUT_LINE('Error_Stack...' || CHR(10) || DBMS_UTILITY.FORMAT_ERROR_STACK());
DBMS_OUTPUT.PUT_LINE('Error_Backtrace...' || CHR(10) || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE());
END;
/