Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Definisikan Kursor secara kondisional

Anda akan membutuhkan KURSOR REF dan membukanya dengan syarat, misalnya:

SQL> CREATE OR REPLACE PROCEDURE GET_RECORDS(v_action IN VARCHAR2) IS
  2     v_thing     VARCHAR2(10);
  3     get_records SYS_REFCURSOR;
  4  BEGIN
  5     IF (v_action = 'DO THIS') THEN
  6        OPEN get_records FOR
  7           SELECT 1 FROM dual;
  8     ELSE
  9        OPEN get_records FOR
 10           SELECT 2 FROM dual;
 11     END IF;
 12  
 13     LOOP
 14        FETCH get_records INTO v_thing;
 15        EXIT WHEN get_records%NOTFOUND;
 16        /* do things */
 17        dbms_output.put_line(v_thing);
 18     END LOOP;
 19     CLOSE get_records;
 20  END;
 21  /

Procedure created

SQL> exec get_records ('DO THIS');
1

PL/SQL procedure successfully completed

SQL> exec get_records ('DO THAT');
2

PL/SQL procedure successfully completed


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mengubah nls_date_format default untuk klien Oracle jdbc

  2. bagaimana cara menggunakan xmltable di oracle?

  3. ORA-12516, TNS:pendengar tidak dapat menemukan penangan yang tersedia

  4. Berikan Pilihan pada semua Tabel yang Dimiliki Oleh Pengguna Tertentu

  5. Oracle:Memperbarui kolom tabel menggunakan ROWNUM bersama dengan klausa ORDER BY