원 소스를 복사 못해서 대충 구조에 맞게 작성해봤습니다. 컴파일 하고 실행을 해도 데이터가 나오질 않습니다. 어디가 잘못된건지 도움좀 주십시오.. CREATE OR REPLACE FUNCTION TABLE_FUNC ( P_INPUT1 IN VARCHAR2 , P_INPUT2 IN VARCHAR2 , P_INPUT3 IN VARCHAR2 , P_INPUT4 IN VARCHAR2 , P_INPUT5 IN VARCHAR2 ) RETURN TABLE_TYPE PIPELINED IS V_TYPE OBJ_TYPE; CUR SYS_REFCURSOR; V_SQL VARCHAR2(1000); BEGIN V_SQL := ''; V_SQL := V_SQL || 'SELECT COL1'; V_SQL := V_SQL || ' , COL2'; V_SQL := V_SQL || ' , COL3'; V_SQL := V_SQL || ' , COL4'; V_SQL := V_SQL || ' , COL5'; V_SQL := V_SQL || ' FROM ZZ'; V_SQL := V_SQL || ' WHERE COL6 = '''A''''; IF (P_INPUT1 IS NOT NULL) THEN V_SQL := V_SQL || ' AND COL1 = ''' || P_INOUT1 || ''''; END IF; IF (P_INPUT2 IS NOT NULL) THEN V_SQL := V_SQL || ' AND COL2 = ''' || P_INOUT2 || ''''; END IF; IF (P_INPUT3 IS NOT NULL) THEN V_SQL := V_SQL || ' AND COL3 = ''' || P_INOUT3 || ''''; END IF; IF (P_INPUT4 IS NOT NULL) THEN V_SQL := V_SQL || ' AND COL4 = ''' || P_INOUT4 || ''''; END IF; IF (P_INPUT5 IS NOT NULL) THEN V_SQL := V_SQL || ' AND COL5 = ''' || P_INOUT5 || ''''; END IF; OPEN CUR FOR V_SQL; LOOP FETCH CUR INTO V_TYPE.COL1, V_TYPE.COL2, V_TYPE.COL3, V_TYPE.COL4, V_TYPE.COL5; EXIT WHEN CUR%NOTFOUND; PIPE ROW(V_TYPE); END LOOP; CLOSE CUR; RETURN; END TABLE_FUNC; /