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

perulangan melalui array untuk kondisi where pl/sql

Kita dapat menggunakan TABLE berfungsi pada suatu koleksi untuk mendapatkan daftar angka/karakter.

SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );

8779254
8819930
8819931

Di sini saya menggunakan VARRAY internal Oracle dengan batas 32767. Anda dapat menggunakan NESTED TABLE Anda sendiri ketik.

create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;

lalu pilih.

SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );

Jadi, kueri Anda cukup ditulis sebagai

SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM 
       TABLE ( yourtype(8779254,8819930,8819931) ) );

12.2 dan di atasnya, Anda bahkan tidak perlu menentukan TABLE .

SELECT * FROM yourtype(8779254,8819930,8819931) bekerja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dbms_metadata.get_ddl tidak berfungsi

  2. Oracle 11g PHP oci_connect gagal OCIEnvNlsCreate()

  3. Cara Mengembalikan Set Kustom dalam Prosedur Tersimpan PL/SQL

  4. Bagaimana saya bisa membuat tabel sebagai pilihan dari database lain di Oracle?

  5. Menyetel Kueri SQL di Oracle