我要是效果是这样的,
ref cursor中select的列数不定,比如可能是“select a1,a2,a5”也可能是“select b7,b2”
那么我每次都要把选中的所有列的值拿出来计算,该怎么取啊
我想用
fetch c1 into v_arr;(type type_array is table of varchar2(200) index by binary_integer;
type v_cursor IS ref cursor;
c1 v_cursor;)但是不行····应该怎么弄才行》》???
ref cursor中select的列数不定,比如可能是“select a1,a2,a5”也可能是“select b7,b2”
那么我每次都要把选中的所有列的值拿出来计算,该怎么取啊
我想用
fetch c1 into v_arr;(type type_array is table of varchar2(200) index by binary_integer;
type v_cursor IS ref cursor;
c1 v_cursor;)但是不行····应该怎么弄才行》》???
解决方案 »
- 关于日期分秒的处理
- 高分求oracle权威书籍推荐
- 用什么效率比较高?
- ORA-02289: 序列(号)不存在
- 急,数据库启动错误:LRM-00109: could not open parameter file '/home/oracle/ora9/dbs/initboci.ora'
- 受不了了,菜鸟求教:安装完ORACLE还要做什么工作?和一堆乱七八糟的问题。。。
- 请问原来在PL/SQL Developer中,可以调出oracle的帮助,但现在重装后却没了,不知什么原因
- 新手问题:怎么用.sql文件把触发器等东西导入数据库?
- 请教关于oracle问题
- 如果从表中找出编码重复而名称不重复的所有记录?(在线等待...)
- ORA-00979 与 ORA-02063 错误原因?
- oracle 8i中能在select list中用嵌套查询吗?
temp_sql:='select '||arr_view(字符串)||' from aaa';
open c1 for temp_sql;
LOOP
fetch c1 into ?????-----这里该怎么写?因为列数是动态的
END LOOP
我想
fetch c1 into ?????fetch c1 bulk collect into v_arr
--将一个查询的结果 记录by记录 地列出来
create or replace procedure print_table( p_query in varchar2 )
AUTHID CURRENT_USER
is
l_theCursor integer default dbms_sql.open_cursor;
l_columnValue varchar2(4000);
l_status integer;
l_descTbl dbms_sql.desc_tab;
l_colCnt number;
begin
execute immediate
'alter session set
nls_date_format=''dd-mon-yyyy hh24:mi:ss'' ';dbms_sql.parse( l_theCursor, p_query, dbms_sql.native );
dbms_sql.describe_columns
( l_theCursor, l_colCnt, l_descTbl );for i in 1 .. l_colCnt loop
dbms_sql.define_column
(l_theCursor, i, l_columnValue, 4000);
end loop;l_status := dbms_sql.execute(l_theCursor);while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop
for i in 1 .. l_colCnt loop
dbms_sql.column_value
( l_theCursor, i, l_columnValue );
dbms_output.put_line
( rpad( l_descTbl(i).col_name, 30 )
|| ': ' ||
l_columnValue );
end loop;
dbms_output.put_line( '-----------------' );
end loop;
execute immediate
'alter session set nls_date_format=''dd-MON-rr'' ';
exception
when others then
execute immediate
'alter session set nls_date_format=''dd-MON-rr'' ';
raise;
end;
/
http://space.itpub.net/471666/viewspace-118508是否符合你的要求?
temp_sql:='select '||arr_view(字符串)||' from aaa';
open c1 for temp_sql;
fetch c1 bulk collect into v_arr;
open c1 for temp_sql;
fetch c1 bulk collect into v_arr;