如何循环访问 oracle pl/sql 游标中的列

发布于 2024-08-29 00:49:14 字数 386 浏览 5 评论 0原文

我正在创建一个动态游标,我想循环游标中存在的列。我该怎么做呢?

例如:

create or replace procedure dynamic_cursor(empid in varchar2, RC IN OUT sys_refcursor) as
     stmt varchar2(100);
   begin
     stmt := 'select * from employees where id = ' || empid;
     open RC for stmt using val;

     for each {{COLUMN OR SOMETHING}}
       --TODO: Get this to work
     loop;
end;     

I am creating a dynamic cursor and I would like to loop over the columns that exist in the cursor. How would I do that?

For example:

create or replace procedure dynamic_cursor(empid in varchar2, RC IN OUT sys_refcursor) as
     stmt varchar2(100);
   begin
     stmt := 'select * from employees where id = ' || empid;
     open RC for stmt using val;

     for each {{COLUMN OR SOMETHING}}
       --TODO: Get this to work
     loop;
end;     

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

本宫微胖 2024-09-05 00:49:14

您将需要使用 Oracle 动态 SQL ,最有可能是方法 4

编辑:
抱歉,以上内容适用于 Pro*C。您将需要使用 DBMS_SQL 包。它相当复杂,但允许您在运行时解析、执行和获取所需的任意 SQL 语句。特别是看一下示例 3 和 8。

You will need to use Oracle Dynamic SQL, most likely method 4.

EDIT:
Sorry, the above is for Pro*C. You will need to use the DBMS_SQL package. It's fairly complex, but will allow you to parse, execute, and fetch any arbitrary SQL statement you need, all at run time. In particular, have a look at examples 3 and 8.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文