Say I created a Stored procedure ABC and then if I want to call this procedure in a different PL/sql block and pass those parameters especially the timestamp, how would I do that?
This is what I used to call the SP
SET SERVEROUTPUT ON; DECLARE v_ABC timestamp (6); BEGIN select to_timestamp(to_char(sysdate,'dd-mon-yyyy hh:mi:ss'))into v_ABC from dual; EXEC ABC('par1', 'par2', 'par3', 'par4', v_ABC, v_ABC, 'par5', 1000, 'Unknown'); COMMIT; END;
But I cannot get the sys date correct, which isv_ABC
, and it fails; not sure what I am doing wrong.
This is the stored procedure:
create PROCEDURE ABC ( p_a IN VARCHAR2 , P_b IN VARCHAR2 , P_c IN VARCHAR2 , P_d IN VARCHAR2 , P_e IN TIMESTAMP , P_f IN TIMESTAMP , P_g IN VARCHAR2 , P_h IN NUMBER , P_i IN VARCHAR2 ) IS v_err_msg VARCHAR2(100); BEGIN INSERT INTO table (col1, col2, col3, col4, col5, col6, col7, col8, col9) VALUES (p_a, p_b, p_c, p_d, p_e, p_f, p_g, p_h, p_i ); COMMIT; EXCEPTION WHEN OTHERS THEN v_err_msg := substr(SQLERRM,1,100); dbms_output.put_line('Error sqlmsg : ' || v_err_msg); RAISE; END ABC;