보통 쿼리에 컬럼이나 테이블명 등은 변수로 받을 수가 없는데요.
원하는대로 쿼리를 만들어서 결과값을 가져오는 오라클 함수 샘플입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | CREATE OR REPLACE FUNCTION ZBF_GET_DELIVERY_NM ( p_ptnrky in varchar2 , p_wareky in varchar2 ) RETURN VARCHAR IS v_sql VARCHAR2(1000); v_returnValue VARCHAR2(180); /******************************************************************************/ BEGIN BEGIN v_sql := ' SELECT B.name01 '|| ' FROM ystdv Y, bzptn B '|| ' WHERE Y.'|| p_wareky ||' = B.ptnrky '|| ' AND Y.ptnrky = '''|| p_ptnrky ||'''' ; EXECUTE IMMEDIATE v_sql INTO v_returnValue; EXCEPTION WHEN NO_DATA_FOUND THEN v_returnValue := ' '; WHEN OTHERS THEN v_returnValue := ' '; END; RETURN v_returnValue; END; | cs |
v_sql이라는 변수에 담아서 쿼리 실행 결과를 v_returnValue라는 변수로 받아 return합니다.
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[오라클] Oracle에서 컬럼의 값 만큼 행(Row)을 늘리는 쿼리 (0) | 2017.06.29 |
---|---|
[오라클] 테이블정의서 자동으로 만들어주는 Oracle 쿼리 (Primary Key 여부 포함) (0) | 2017.06.26 |
[Oracle] 오라클 락(lock) 걸렸을 때 사용할 유용한 쿼리들 (0) | 2017.06.08 |
[Oracle] 날마다 시퀀스가 초기화되는 오라클 날짜 시퀀스(Sequence) 만들기 (0) | 2017.05.30 |
[Oracle] 오라클 함수(Function)에서 DML(Insert/update/delete)문 사용하기 (0) | 2017.05.26 |
댓글