oracle如何利用存储过程查询动态表的所有字段的全部记录并利用游标fetch出来显示在控制台上?

如上所述,在事先不知道表名和对应的字段的前提下,如何利用游标把表的记录都fetch出来并显示在控制台上?万分感谢~... 如上所述,在事先不知道表名和对应的字段的前提下,如何利用游标把表的记录都fetch出来并显示在控制台上?万分感谢~ 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
射手小小王
2015-06-09 · TA获得超过398个赞
知道小有建树答主
回答量:716
采纳率:85%
帮助的人:258万
展开全部
先判断表存在与否,存在,然后就根据表名到对应的表中关联一下,然后遍历动态游标就可以了,
更多追问追答
追问
能详细说一下吗?怎么关联,而且事先是不知道有什么字段的,用动态游标怎样fetch cur into ?谢谢!
追答
DECLARE 
V_COUNT NUMBER;
V_TABLENAME VARCHAR2(20):='EMP';
V_COLUMN VARCHAR2(40);
CURSOR C_COLUMN IS SELECT S.COLUMN_NAME from all_tab_columns s where s.TABLE_NAME=V_TABLENAME ;
BEGIN
SELECT COUNT(*) INTO V_COUNT FROM USER_TABLES S WHERE S.TABLE_NAME=V_TABLENAME;
IF V_COUNT=1 THEN
DBMS_OUTPUT.PUT_LINE(V_TABLENAME||' IS EXISTS');
ELSE
DBMS_OUTPUT.PUT_LINE(V_TABLENAME||' IS NOT EXISTS');
RETURN;
END IF;
OPEN C_COLUMN;
LOOP
EXIT WHEN C_COLUMN%NOTFOUND;
FETCH C_COLUMN INTO V_COLUMN;
DBMS_OUTPUT.put_line(V_COLUMN);
END LOOP;
CLOSE C_COLUMN;
END;

你自己去封装为过程,不给分,直接爆你头
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式