pl/sql預存程序loop死迴圈

來源:互聯網
上載者:User

今早,一個預存程序,寫過很多次的預存程序,隨手一寫,各種報錯,各種糾結,網上一搜,有好多個都遇到,論壇上給出的結局答案,都沒說到點上,先看一下原程式,我注釋掉的部分是我缺少的跳出迴圈語句。

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服務,把這個服務開啟,服務就可以在控制台列印輸出的內容。顯然這個錯誤指的是緩衝溢出,很容易聯想到死迴圈這樣的錯誤導致,可惜一時沒想出來,現在總結一下,謹記!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.