日期:2014-05-17  浏览次数:20996 次

请教高人,如何遍历一个表的所有列?
各位高人,

我知道oracle里要遍历一个表的所有行可以用游标 cursor.

可是我现在需要在遍历行的时候,对这个表的所有列也遍历一下,

请问有什么好的办法?

万分感谢!!!

------解决方案--------------------
我靠,你把它转成列就行了!现在的人啊,想都懒得想。。。
------解决方案--------------------
探讨

我靠,你把它转成列就行了!现在的人啊,想都懒得想。。。

------解决方案--------------------
你可以用DBMS_SQL处理,给你个例子:
SQL code

SET SERVEROUTPUT ON
DECLARE
  c           NUMBER;
  d           NUMBER;
  col_cnt     INTEGER;
  f           BOOLEAN;
  rec_tab     DBMS_SQL.DESC_TAB;
  col_num    NUMBER;
BEGIN
  c := DBMS_SQL.OPEN_CURSOR;

  DBMS_SQL.PARSE(c, 'SELECT * FROM DBA_USERS', DBMS_SQL.NATIVE);
 
  d := DBMS_SQL.EXECUTE(c);
 
  DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);

/*
 * Following loop could simply be for j in 1..col_cnt loop.
 * Here we are simply illustrating some of the PL/SQL table
 * features.
 */
  col_num := rec_tab.first;
  IF (col_num IS NOT NULL) THEN
    LOOP
        DBMS_OUTPUT.PUT_LINE('col_name            =    '
                         || rec_tab(col_num).col_name);
      col_num := rec_tab.next(col_num);
      EXIT WHEN (col_num IS NULL);
    END LOOP;
  END IF;
 
  DBMS_SQL.CLOSE_CURSOR(c);
END;
/

------解决方案--------------------
探讨

引用:

我靠,你把它转成列就行了!现在的人啊,想都懒得想。。。


都不知道有多少列,怎么转成行!