3,491
社区成员
发帖
与我相关
我的任务
分享
set serveroutput on
SQL> select * from t1;
V1 V2 V3 V4 V5 V6
---- ---- ---- ---- ---- ----
01 09 10 11 18 40
SQL>
SQL> create or replace procedure pt is
2 res1 varchar2(4);
3 res2 varchar2(4);
4 begin
5 declare
6 cursor c_sql
7 is
8 select 'select '||substr(sys_connect_by_path(COLUMN_NAME,','),2)||' from t1' tsql from (select column_name from USER_tAB_COLS WHERE TABLE_NAME='T1')
9 where level = 2
10 connect BY prior column_name < column_name AND LEVEL <=2;
11 c_row c_sql%rowtype;
12 begin
13 for c_row in c_sql loop
14 execute immediate c_row.tsql into res1,res2;
15 dbms_output.put_line(res1||','||res2) ;
16 end loop;
17 end;
18 end pt;
19 /
Procedure created
SQL> exec pt;
01,09
01,10
01,11
01,18
01,40
09,10
09,11
09,18
09,40
10,11
10,18
10,40
11,18
11,40
18,40
PL/SQL procedure successfully completed