DECLARE
vl_n_counter NUMBER := 0;
vl_n_itrncntr NUMBER := 1
vl_c_colrecord cols.column_name%TYPE;
CURSOR cur_col
IS
SELECT column_name
FROM cols
WHERE table_name = 'EMP;
BEGIN
OPEN cur_col;
LOOP
FETCH cur_col
INTO vl_c_colrecord;
EXIT WHEN cur_col%NOTFOUND;
vl_n_counter := cur_col%ROWCOUNT;
END LOOP;
CLOSE cur_col;
DBMS_OUTPUT.put_line ('(');
vl_n_itrncntr := 1;
FOR rec_col IN cur_col
LOOP
IF vl_n_itrncntr = vl_n_counter
THEN
DBMS_OUTPUT.put_line (rec_col.column_name);
ELSE
DBMS_OUTPUT.put_line (rec_col.column_name ',');
END IF;
vl_n_itrncntr := vl_n_itrncntr + 1;
END LOOP;
DBMS_OUTPUT.put_line (')');
END;
Method 2nd using V arrays
DECLARE
TYPE vl_t_columnlist IS VARRAY (100) OF VARCHAR2 (50);
vl_c_listcol vl_t_columnlist;
BEGIN
SELECT column_name
BULK COLLECT INTO vl_c_listcol
FROM cols
WHERE table_name = 'EMP';
FOR i IN vl_c_listcol.FIRST .. vl_c_listcol.LAST
LOOP
IF i = vl_c_listcol.COUNT
THEN
DBMS_OUTPUT.put_line (vl_c_listcol (i));
ELSE
DBMS_OUTPUT.put_line (vl_c_listcol (i) ',');
END IF;
END LOOP;
DBMS_OUTPUT.put_line (')');
END;
No comments:
Post a Comment