存储过程中 变量列名,变量表名,把数据存放到变量的问题

_三皮_ 2010-11-23 05:19:36
在写一个ORACLE存储过程,由于表名和列名都是参数传进去的,返回是查询结果,具体要求如下描述,请各位大虾指教!

把数据库的表中第一条数据用存储过程按“变量列名,变量表名,把数据存放到变量”要求实现。
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sudianbo 的回复:]
我的得到的结果,还是在这个过程中用,sys_refcursor的值怎么取出来呀(比方说,用Dbms_Output.put_line输出结果),没用过
[/Quote]



SQL> create or replace procedure p_rec(v_tb varchar2,v_col varchar2,v_col2 varchar2,cur out sys_refc
ursor)
2 as
3 begin
4 open cur for 'select '||v_col||','||v_col2||' from '||v_tb;
5 end;
6 /

过程已创建。


---简单的引用

SQL> edi
已写入 file afiedt.buf

1 declare
2 cur sys_refcursor;
3 v_no emp.empno%type;
4 v_name emp.ename%type;
5 begin
6 p_rec('emp','empno','ename',cur);
7 fetch cur into v_no,v_name;
8 while cur%found loop
9 dbms_output.put_line(v_no||' '||v_name);
10 fetch cur into v_no,v_name;
11 end loop;
12 close cur;
13* end;
SQL> /
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER

PL/SQL 过程已成功完成。







_三皮_ 2010-11-23
  • 打赏
  • 举报
回复
我的得到的结果,还是在这个过程中用,sys_refcursor的值怎么取出来呀(比方说,用Dbms_Output.put_line输出结果),没用过
心中的彩虹 2010-11-23
  • 打赏
  • 举报
回复
create or replace procedure p_rec(v_tb varchar2,v_col varchar2,v_col2 varchar2,cur out sys_refcursor)
as
begin
open cur for 'select '||v_col||','||v_col2||' from '||v_tb;
end;

iqlife 2010-11-23
  • 打赏
  • 举报
回复
方向:动态SQL

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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