解决方案 »
- 请教oracle包权限问题
- 兩台Oracle服務器配置相同,但是Oracle進程佔用的內存怎麼差異很大
- OracleOraHome92Agent不能启动
- Oracle 无法解析指定的对象标识符?
- SQLLOAD LOG 一句话不解 value used for ROWS parameter changed from 64 to 41
- 请教,导出ORACLE 的一个用户,但不导出这个用户下面的某个表,如何实现?
- 请教高手一复杂sql语句
- oracle8i可以使用高级复制功能吗?
- 2个小问题,先来先得,解决就给!!!
- 关于两个一摸一样的表查询,急!!!
- 此SQL巨头晕,大家来瞧瞧
- 怎样在创建表时,指定创建2个聚簇字段
(
tablename IN varchar2
) IS
filed_test varchar2(30):='';
VN_Field_Str varchar2(4000):= ''; CURSOR Cur_fieldsd IS
select column_name
from user_tab_columns
where upper(table_name) = upper(tablename);
BEGIN OPEN Cur_fieldsd;
LOOP
FETCH Cur_fieldsd
INTO filed_test;
EXIT WHEN Cur_fieldsd%NOTFOUND;
VN_Field_Str := VN_Field_Str || filed_test || ',';
end loop;
CLOSE Cur_fieldsd; dbms_output.put_line(VN_Field_Str);
END test_proc;
你把它fetch到一个变量可定时不行的。
定义一个type 吧
我有用 loop 循环,这个是没问题的。
(
tablename IN varchar2
) IS
filed_test varchar2(30):='';
VN_Field_Str varchar2(4000):= '';
BEGIN declare CURSOR Cur_fieldsd IS
select column_name
from user_tab_columns
where upper(table_name) = upper(tablename);
begin
OPEN Cur_fieldsd;
LOOP
FETCH Cur_fieldsd
INTO filed_test;
EXIT WHEN Cur_fieldsd%NOTFOUND;
VN_Field_Str := VN_Field_Str || filed_test || ',';
end loop;
CLOSE Cur_fieldsd;
end;
dbms_output.put_line(VN_Field_Str);
END test_proc;call test_proc('T_BC_OtherExpenseBill');解决了,这样写就可以执行了,加多多一个begin end;语句块,不过还是要谢谢各位了。
在begin end 存储过程 之间的游标。
放在块里面的。
declare
begin
end;块里面才可以。