【问题标题】:How to fetch columns in cursor using FETCH?如何使用 FETCH 获取游标中的列?
【发布时间】:2012-11-01 10:59:06
【问题描述】:
create or replace PROCEDURE newprocedur(outname OUT VARCHAR2,outroll OUT NUMBER) AS
  CURSOR c1 IS 
    select Name,Rollno,Section 
      from emp;
BEGIN
  Open c1;
  fetch c1 into outname,outroll;

在游标的 3 列中,是否可以像我上面那样使用 FETCH 仅获取两列??

【问题讨论】:

    标签: oracle plsql oracle10g cursor oracle11g


    【解决方案1】:

    您使用的是 11g。您不需要定义变量或游标。让 Oracle 为您完成繁重的工作。

    create or replace PROCEDURE newprocedur(outname OUT VARCHAR2,outroll OUT NUMBER) 
    AS
    BEGIN
       select Name,Rollno
       into outname,outroll
       from emp;
    END;
    

    如果 EMP 有不止一行,这将引发错误。有多种解决方法。例如,使用 ROWNUM 人为地限制结果集。或者将 EMP_ID 作为输入参数来选择所需的记录。这取决于这是一个玩具示例还是真实世界 API 的开始。


    "如上例中如何使用ROWNUM?"

    ROWNUM 是一个伪列,被 in the documentation 覆盖。但是,为了完整起见,我们可以使用它来限制这样的结果集:

    select Name,Rollno
    from emp
    where rownum <= 1;
    

    【讨论】:

    • 如上如何使用ROWNUM?请先生解释一下
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2012-05-02
    • 2012-06-17
    • 2021-09-24
    • 1970-01-01
    • 2016-12-21
    相关资源
    最近更新 更多