2011-01-12 16 views
13

Tôi có một thủ tục được lưu trữ trong cơ sở dữ liệu Oracle 10g nơi đầu vào của tôi là một varchar2 nhưng tôi đang gặp vấn đề nhận được nó chạy khi chuỗi đầu vào dài (không chắc chắn chiều dài chính xác có thể> 8000).Kích thước mặc định của đầu vào varchar2 cho thủ tục được lưu trữ của Oracle là gì và nó có thể được thay đổi không?

Suy nghĩ của tôi là 'intext varchar2' (như bên dưới) theo mặc định là quá nhỏ. Trong các trường hợp khác, nơi tôi cần một chuỗi dài hơn, tôi có thể định nghĩa một varchar2 là "intext2 VARCHAR2 (32767);" Tôi đã cố gắng để xác định kích thước tương tự như trong mã dưới đây nhưng cú pháp của tôi là không chính xác.

create or replace PROCEDURE TESTPROC (intext IN VARCHAR2 

) AS .... 

Kích thước (mặc định) của varchar2 intext là gì?

Kích thước đó có thể được xác định (tăng) không?

cảm ơn

Trả lời

30

Bạn không thể chỉ định kích thước cho tham số VARCHAR2 cho quy trình.

Quy trình này vui vẻ chấp nhận các chuỗi có kích thước tối đa 32k (kích thước tối đa của VARCHAR2 trong PL/SQL). Nếu nó là một hàm được gọi từ SQL thay vì PL/SQL, giới hạn sẽ là 4k vì kích thước tối đa của VARCHAR2 trong SQL chỉ là 4k.

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