Rumah >pangkalan data >Oracle >Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

WBOY
WBOYasal
2022-06-10 15:48:1113502semak imbas

Penyataan gelung dalam prosedur tersimpan Oracle: 1. Gelung LOOP, sintaksnya ialah "badan gelung gelung; KELUAR KETIKA ungkapan bersyarat gelung; GELANG TAMAT;"; 2. Gelung WHILE, sintaks ialah "semasa ungkapan bersyarat Penyataan gelung gelung formula;gelung akhir;"; 3. Untuk gelung, sintaks ialah "untuk pembolehubah IN (terbalik) nilai had bawah pembolehubah... nilai had atas pembilang badan gelung LOOP; LOOP TAMAT;".

Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

Persekitaran pengendalian tutorial ini: sistem Windows 10, Oracle versi 12c, komputer Dell G3.

Apakah pernyataan gelung dalam prosedur tersimpan Oracle

Apabila program perlu melakukan operasi berulang kali, ia mesti menggunakan struktur gelung. Kenyataan gelung dalam PL/SQL terutamanya termasuk tiga jenis: pernyataan LOOP, pernyataan WHERE dan pernyataan FOR.

Pernyataan LOOP

Pernyataan LOOP akan mula-mula melaksanakan badan gelung sekali, dan kemudian menentukan sama ada ungkapan bersyarat selepas kata kunci EXIT WHEN adalah benar atau palsu adalah benar Keluar dari badan gelung, jika tidak program akan melaksanakan badan gelung sekali lagi.

Sintaks asas:

loop
    A;
    EXIT WHEN B;
END LOOP;

J: Mewakili penyataan sql dalam badan gelung, yang boleh menjadi satu ayat atau berbilang ayat Ini adalah bahagian inti bagi badan gelung dilaksanakan sekurang-kurangnya sekali.

B: Ungkapan bersyarat hujung gelung, apabila ia benar, keluar dari gelung, jika tidak laksanakan badan gelung sekali lagi.

Contoh kod:

-- Created on 2020/12/16 by GUO 
declare 
  i int:= 0;
begin
  loop
    i:=i+1;
    dbms_output.put_line(i);
    EXIT WHEN i > 3;
  END LOOP;
end;

Hasil berjalan:

Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

Contoh praktikal:

Apabila menggunakan kursor Gelung , untuk mendapatkan nilai dalam kursor, anda mesti menetapkannya semula, jika tidak ralat akan dilaporkan.

-- Created on 2020/12/17 by GUO 
declare
  cursor user is
    select * from user_table;
  user1 user_table%rowtype;
begin
  open user;
  loop
    fetch user into user1;
    exit when user%notfound;
    dbms_output.put_line('用户名称:' || user1.USER_NAME);
    dbms_output.put_line('用户年龄:' || user1.USER_AGE);
  end loop;
  close user; --关闭游标
end;

Pernyataan WHILE

Sebelum pelaksanaan, tentukan dahulu sama ada nilai ungkapan bersyarat adalah benar, laksanakan badan gelung WHILE loop Teruskan melaksanakan kod mengikut gelung.

Sintaks asas:

while a loop
  b;
end loop;

J: Mewakili ungkapan bersyarat Apabila nilai adalah benar, atur cara melaksanakan badan gelung, jika tidak, ia akan keluar.

B: Pernyataan SQL dalam badan gelung.

Contoh kod:

-- Created on 2020/12/17 by GUO 
declare
  i int := 0;
begin
  while i < 3 loop
    i := i + 1;
    dbms_output.put_line(i);
  end loop;
end;

Hasil jalankan:

Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

Contoh sebenar:

-- Created on 2020/12/17 by GUO 
declare
  cursor user is
    select * from user_table;
  user1 user_table%rowtype;
begin
  open user;
  fetch user into user1;
  while(user%found)loop
  dbms_output.put_line(&#39;用户名称:&#39; || user1.USER_NAME);
  fetch user into user1;
  end loop;
end;

pernyataan FOR

Pernyataan FOR ialah pernyataan kawalan gelung yang boleh menetapkan bilangan gelung terlebih dahulu Ia mempunyai pembilang gelung, biasanya pembolehubah integer, yang melaluinya bilangan gelung dikawal.

Sintaks asas:

for A IN (reverse) B...C LOOP
   D;
 END LOOP;

J: Mewakili pembolehubah, biasanya jenis sijil, digunakan sebagai pembilang Nilai lalai meningkat Apabila kata kunci terbalik digunakan dalam gelung. ia Ia akan berkurangan secara kitaran.

B: Membilang nilai had bawah Apabila nilai pembilang kurang daripada nilai had bawah, gelung ditamatkan.

C: Membilang nilai had atas Apabila nilai pembilang lebih besar daripada nilai had atas, gelung ditamatkan.

D: Badan gelung.

Contoh kod:

-- Created on 2020/12/17 by GUO 
declare 
  i int := 0;
begin
  for i IN reverse 1..5 LOOP
    dbms_output.put_line(i);
  END LOOP;
end;

Hasil jalankan:

Apakah pernyataan gelung dalam prosedur tersimpan Oracle?

Contoh praktikal:

Gunakan dengan kursor

-- Created on 2020/12/17 by GUO 
declare
  cursor user is
    select * from user_table;
begin
  for user1 in user loop
  dbms_output.put_line(&#39;用户名称:&#39;||user1.USER_NAME);
  dbms_output.put_line(&#39;用户年龄:&#39;||user1.USER_AGE);
  end loop;
end;

Tutorial yang disyorkan: "Tutorial Video Oracle"

Atas ialah kandungan terperinci Apakah pernyataan gelung dalam prosedur tersimpan Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn