2011-11-28 20 views
19

Về cơ bản, tôi cần truy vấn về một nghìn NEXTVAL từ một chuỗi. Tôi có thể truy vấn chúng trong một vòng lặp, hoặc tôi có thể truy vấn chúng thông qua một tham gia với một bảng lớn reeeeeally.Truy vấn một số NEXTVAL từ chuỗi trong một câu lệnh

Có cách nào ít hacky hơn không?

Cập nhật. Về cơ bản, tôi có lịch biểu hoạt động trên các đối tượng. Mỗi đối tượng có một UUID được tạo hoặc một ID từ cơ sở dữ liệu. Sau khi tôi tính toán một lịch trình tối ưu, tôi cần phải viết nó vào DB, nhưng mọi ID trong bảng HAS là từ một chuỗi. Vì vậy, tôi cần phải truy vấn một số ID từ chuỗi đó. Vấn đề là truy vấn looping là chậm, vì DB thực sự là xa tôi, và tôi không thể chỉ mất vài giây trong khi thực hiện hàng tá truy vấn trong một vòng lặp. Vì vậy, tôi cần truy vấn tất cả các ID mới đó trong một truy vấn.

+0

Cũng NB mà bạn có thể cần/muốn sử dụng tìm nạp lớn để tránh vẫn có RTT cho mỗi hàng được trả về: http://stackoverflow.com/a/17331855/32453 – rogerdpack

Trả lời

31

Bạn có thể sử dụng này:

select your_sequence.nextval 
from (
    select level 
    from dual 
    connect by level < 1000 
); 
+0

Cảm ơn! Hoạt động hoàn hảo. – F0RR

+0

cũng thấy một phiên bản sửa đổi nhỏ của điều này trong phản ứng của Florin Ghita, là tốt. – rogerdpack

14

Phụ thuộc vào những gì bạn muốn làm với chúng.

Nếu bạn chèn chúng vào một bảng, bạn có thể unse seq.nexval trong truy vấn chèn. (Như được giải thích ở đây: How can I insert multiple rows into oracle with a sequence value?)

Nếu bạn sử dụng chúng trong một vòng lặp, bạn có thể tìm nạp chúng trong vòng lặp đó.

Bạn muốn làm gì với họ?

Như tôi biết, bạn không thể tìm nạp nhiều giá trị từ chuỗi.

UPDATE: aswer a_horse_with_no_name có thể được cải thiện như thế này:

select your_sequence.nextval 
from dual 
connect by level < 1000 

:)

-4
select sequence_name.nextval 
from dual 
connect by level < number of values you want to print; 
+3

Điều này giống với các câu trả lời khác. –

+0

Điều này sẽ cung cấp cho bạn ** một ít ** hơn "số lượng giá trị bạn muốn in" –

Các vấn đề liên quan