DECLARE c_ NUMBER; x_ NUMBER; col_count_ NUMBER; col_position_ NUMBER; v_sql VARCHAR2(100); col_name VARCHAR2(100); col_value VARCHAR2(100); desc_tab_ DBMS_SQL.DESC_TAB; BEGIN col_name := 'ENAME'; v_sql := 'SELECT * FROM emp'; c_ := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(c_, v_sql, dbms_sql.v7); DBMS_SQL.DESCRIBE_COLUMNS(c_, col_count_, desc_tab_); FOR i_ IN 1..col_count_ LOOP IF desc_tab_(i_).col_name = col_name THEN col_position_ := i_; EXIT; END IF; END LOOP; IF col_position_ > 0 THEN DBMS_SQL.DEFINE_COLUMN(c_, col_position_, col_value, 100); x_ := DBMS_SQL.EXECUTE(c_); DBMS_OUTPUT.PUT_LINE(col_name); DBMS_OUTPUT.PUT_LINE('------'); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS(c_) = 0; DBMS_SQL.COLUMN_VALUE(c_, col_position_, col_value); DBMS_OUTPUT.PUT_LINE(col_value); END LOOP; ELSE DBMS_OUTPUT.PUT_LINE('col_name 오류 : ' || col_name); END IF; DBMS_SQL.CLOSE_CURSOR(c_); END; /