BEGIN CUST_NO1 := 'cook'; SITE_CD1 := 'A'; SELECT AY_SEQ, D_ST_SEQ INTO AY_SEQ1, D_ST_SEQ1 FROM ML.AY_DETAIL WHERE CUST_NO = CUST_NO1 AND SITE_CD = SITE_CD1;
-- Now you can use AY_SEQ1 and D_ST_SEQ1 for further processing if needed -- ... DBMS_OUTPUT.PUT_LINE('AY_SEQ1: ' || AY_SEQ1); DBMS_OUTPUT.PUT_LINE('D_ST_SEQ1: ' || D_ST_SEQ1);
EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No data found for the given criteria.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('An error occurred.'); END; /
결론적으로 into를 넣어주는 게 mssql과 큰 차이점인 것 같다.
보통 mssql에서는 스토어프로시져는 만들어 간편하게 사용하는데 오라클도 가능한지 물었더니
CREATE OR REPLACE PROCEDURE DeleteAndDisplayValue ( p_input_value1 IN VARCHAR2, p_input_value2 IN VARCHAR2 ) IS v_sequence_value NUMBER; v_table2_value NUMBER; BEGIN
-- Find specific sequence value in Table 1
SELECT sequence_column INTO v_sequence_value FROM table1 WHERE some_column = p_input_value1;
-- Find value in Table 2 based on input value
SELECT table2_column INTO v_table2_value FROM table2 WHERE another_column = p_input_value2;
-- Delete value from Table
DELETE FROM table2 WHERE another_column = p_input_value2;
COMMIT; -- Commit the changes EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE( 'No data found.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE( 'An error occurred.'); ROLLBACK; -- Rollback changes in case of error
END DeleteAndDisplayValue;
나왔는데 ... 권한이 없어서 그런지 생성이 안된다. 그리고 작성된 스토어 프로시져는 아래처럼 실행하면 된다고 한다.
BEGIN DeleteAndDisplayValue('input_value1','input_value2'); END;