Oracle 中 如何取得动态的表中的每一列 的值

ZhouSJ586 2007-08-01 01:15:17
Create or replace Procedure Proc_OracleToXml(tableName in varchar2)
as
Cursor sys_refcursor;
begin
/*现在要根据调用时传如 的表名取得该表中的 每一列的值 如何作到 ?*/
open Cursor for 'select * from '''||tableName ||'''';
loop
.....
end loop;

end;

出现的问题 如果用游标 因为表是动态的 那么表的列也是 动态的 很难取得表中的每一列的值?
用游标怎么做 ? 或则有什么其他的方法么 ? 谢谢了
...全文
311 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhouSJ586 2007-08-02
  • 打赏
  • 举报
回复
是不是分不够啊 在加啊 高手呢????
ZhouSJ586 2007-08-01
  • 打赏
  • 举报
回复
取列 可以从数据字典中 user_col_comments 中得到 但最关键的是

myData tableName%Rowtype; 这里就报错啊 因为表名是动态的 tableName%Rowtype

会出错的 有什么其他的方法没有啊?只要是可以得到 动态 表 的 列 的直啊
yugas 2007-08-01
  • 打赏
  • 举报
回复
如果要取列,应该从数据字典中根据表明动态的获取列的信息
总之感觉比较麻烦。
ZhouSJ586 2007-08-01
  • 打赏
  • 举报
回复
但这里 报错 myData tableName%Rowtype;

表名必须是命名表
ZhouSJ586 2007-08-01
  • 打赏
  • 举报
回复
Create or replace procedure Proc_OracleTest(tableName varchar2)

as
CurData sys_refcursor;
myData tableName%Rowtype;
begin
open CurData for 'select * from '''||tableName||'''';
loop

fetch CurData into myData;
exit when CurData%notfound;
Dbms_Output.put_line(myData.列名); ----打出所有的列的值
end loop;
end;

ZhouSJ586 2007-08-01
  • 打赏
  • 举报
回复
根据不同的输入值查不同的表 不同的表的字段不一样
hongqi162 2007-08-01
  • 打赏
  • 举报
回复
open Cursor for 'select * from '''||tableName ||'''';
loop
fetch cursor into ...
exit when cursor%notfound;
......
end loop;

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧