2012-06-13 44 views
17

Tôi đang sử dụng Oracle 11g. Tôi muốn có thể xác định liệu một chuỗi cụ thể có tồn tại hay không. Tôi đã thử mã dưới đây nhưng nó không hoạt động. (Nó trả về 0 là giá trị đếm khi cần có nhiều hơn):Làm cách nào để kiểm tra xem chuỗi có tồn tại hay không trong Oracle 11g?

SELECT COUNT(*) 
FROM user_sequences 
WHERE sequence_name = 'SCHEMA.SEQUENCE_NAME'; 

Nếu có ai biết tại sao điều này, hãy giúp tôi.

Trả lời

31

Nếu bạn đang chạy các truy vấn như dùng MP sau đó thử nó như thế này:

SELECT COUNT(*) 
FROM user_sequences 
WHERE sequence_name = 'SEQ_SSO_KEY_AUTHENTICATION'; 

khác, hãy thử nó như thế này:

SELECT COUNT(*) 
FROM all_sequences 
WHERE sequence_name = 'SEQ_SSO_KEY_AUTHENTICATION' 
AND sequence_owner = 'MP' ; 
+0

Cảm ơn, công việc tuyệt vời. = D –

0

Ngoài ra, hãy nhớ rằng bạn có thể không được cấp để xem tất cả các chuỗi trong DB. Trong trường hợp này các kịch bản được cung cấp trên có thể không làm việc, và bạn nên chạy một cái gì đó giống như

SELECT COUNT(*) FROM DBA_SEQUENCES; 

Nhưng điều này cũng có thể không hoạt động nếu bạn không có quyền truy cập vào DBA_SEQUENCES xem.

Kiểm tra Oracle docs.

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