Chúng ta có thể sử dụng TABLE
chức năng trên một tập hợp để nhận danh sách các số / ký tự.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Ở đây tôi đang sử dụng VARRAY
nội bộ của Oracle với giới hạn 32767. Bạn có thể sử dụng NESTED TABLE
của riêng mình loại.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
và sau đó chọn nó.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Vì vậy, truy vấn của bạn có thể đơn giản được viết là
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 trở lên, bạn thậm chí sẽ không cần chỉ định TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
hoạt động.