2013-01-16 24 views
7

Tôi đang xây dựng một câu lệnh SQL chứa dữ liệu và tôi tự hỏi liệu tôi có thể phá vỡ một số chiều dài tuyên bố tối đa trong Oracle 10g hay không.Độ dài tuyên bố tối đa trong Oracle

Tuyên bố sẽ có khoảng 3 200 000 byte, không thể tách rời và phải phân tích toàn bộ.

Trước khi tôi đầu tư quá nhiều thời gian theo cách này, tôi đã tự hỏi liệu tôi có bị giới hạn bởi kích thước của tuyên bố này hay không.

Tôi đang sử dụng nhà phát triển SQL nhưng tôi nghĩ rằng nếu máy chủ có thể làm điều đó, do đó, có thể phát triển SQL.

+0

Ý của bạn là gì theo "yêu cầu"? Tôi đã chạy một kịch bản 20,1MB (trong đó có chứa chèn.) Nếu mã đã được chấp nhận trong BEGIN/END từ khóa sau đó SQLDeveloper treo cổ. Nếu các lệnh giống như kịch bản, nó sẽ chạy trơn tru. –

+1

@ FlorinGhita Tôi chỉ có một câu. Nó sẽ là một MERGE ... SỬ DỤNG, với mệnh đề USING được tạo thành từ rất nhiều SELECTs sẽ được UNIONed. – BenoitParis

+0

Trường hợp xấu nhất, chỉ cần tạo chế độ xem;) – Plouf

Trả lời

8

Không có số cố định. Xem "Giới hạn cơ sở dữ liệu hợp lý": http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm

"Giới hạn câu lệnh SQL có thể phụ thuộc vào nhiều yếu tố, bao gồm cấu hình cơ sở dữ liệu, dung lượng đĩa và bộ nhớ".

Bạn cũng có thể bị ảnh hưởng bởi các giới hạn khác, chẳng hạn như mức truy vấn phụ tối đa.

Cho rằng độ dài tối đa của các thủ tục PL/SQL được đưa ra là 2000-3000 dòng, cảm giác của tôi là bạn có thể gặp sự cố với truy vấn 3 byte. Tôi cũng nghĩ rằng nếu nó hoạt động, thời gian phân tích sẽ là "thú vị".