Maison > base de données > tutoriel mysql > pl/sql存储过程loop死循环

pl/sql存储过程loop死循环

WBOY
Libérer: 2016-06-07 17:25:30
original
1329 Les gens l'ont consulté

今早,一个存储过程,写过很多次的存储过程,随手一写,各种报错,各种纠结,网上一搜,有好多个都遇到,论坛上给出的结局答案,

今早,一个存储过程,写过很多次的存储过程,随手一写,各种报错,各种纠结,网上一搜,有好多个都遇到,论坛上给出的结局答案,都没说到点上,先看一下原程序,我注释掉的部分是我缺少的跳出循环语句。

declare
  type cur_type is ref cursor;
  cur_emp cur_type;
  r_emp emp%rowtype;
  v_sql varchar2(500);
begin
  v_sql:='select * from emp where sal>:sal';
  open cur_emp for v_sql using &请输入工资:;
  loop
    fetch cur_emp into r_emp;
    --exit when cur_emp%notfound;
    dbms_output.put_line(r_emp.ename||'-'||r_emp.sal);
  end loop;
  close cur_emp;
end;

Oracle报错:

突然间,我就发现了这个少了跳出循环的一步,那错误很简单,关键是这个报错,网上说set serveroutput size 100000000,或者serveroutput设置大一点,或者这样的set serveroutput on size unlimited,都试了,不可以。serveroutput就是pl/sql语言的dbms_output服务,把这个服务开启,服务就可以在控制台打印输出的内容。显然这个错误指的是缓冲溢出,很容易联想到死循环这样的错误导致,可惜一时没想出来,现在总结一下,谨记!

linux

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal