zoukankan      html  css  js  c++  java
  • 通过游标处理select into只能处理返回一行

    在变量赋值的方法中,select into只能为返回单行数据的变量进行赋值

    SQL> set serveroutput on 
    SQL> declare
      2  	v_date date;
      3  begin
      4  	select hire_date into v_date from employees where rownum=1;
      5  	dbms_output.put_line(v_date);
      6  end;
      7  /
    21-JUN-99
    
    PL/SQL procedure successfully completed.

    当我们尝试使用select into为变量赋值多个数据,就会报错,如下

    SQL> set serveroutput on 
    SQL> declare
      2      v_date date;
      3  begin
      4      select hire_date into v_date from employees;
      5      dbms_output.put_line(v_date);
      6  end;
      7  /
    declare
    *
    ERROR at line 1:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at line 4

    使用显示游标处理select into只能返回单行数据为变量赋值

    SQL> set serveroutput on 
    SQL> declare 
      2      cursor c_date is
      3          select hire_date from employees;
      4      v_date date;
      5  begin
          6  open c_date;
      7      loop 
      8          fetch c_date into v_date;
      9          exit when c_date%notfound;
     10          dbms_output.put_line(v_date);
     11      end loop;
     12      close c_date;
     13  end;
    / 14  
    21-JUN-99
    13-JAN-00
    17-SEP-87
    17-FEB-96
    17-AUG-97
    07-JUN-94
    07-JUN-94
    07-JUN-94
    07-JUN-94
    
    PL/SQL procedure successfully completed.
  • 相关阅读:
    Linux安装和配置java
    动态代理:JDK动态代理和CGLIB代理的区别
    常用算法复习
    Linux重新学习
    oracle复杂查询是sql
    oracle触发器
    oracle存储过程
    oracle数据库操作
    java知识回顾
    Spring AOP简述
  • 原文地址:https://www.cnblogs.com/hanglinux/p/14313505.html
Copyright © 2011-2022 走看看