2011-01-12 1 views
13

필자는 Oracle Database 10g에서 입력이 varchar2 인 저장 프로 시저를 사용하고 있지만 입력 문자열이 길면 (정확한 길이가 8000을 넘지 않을 수도 있음) 문제가 발생합니다.Oracle 저장 프로 시저에 대한 varchar2 입력의 기본 크기는 얼마이며 변경할 수 있습니까?

내 생각은 'intext varchar2'입니다 (아래) 기본적으로 너무 작습니다. 긴 문자열이 필요한 다른 경우에는 varchar2를 "intext2 VARCHAR2 (32767);"로 정의 할 수 있습니다. 아래 코드에서 크기를 비슷하게 정의하려고 시도했지만 구문이 올바르지 않습니다.

create or replace PROCEDURE TESTPROC (intext IN VARCHAR2 

) AS .... 

intext varchar2의 (기본) 크기는 무엇입니까?

해당 크기를 정의 할 수 있습니까?

감사

답변

30

당신은 프로 시저에 VARCHAR2 매개 변수의 크기를 지정할 수 없습니다.

프로시 저는 크기가 최대 32k (PL/SQL에서 VARCHAR2의 최대 크기) 인 문자열을 기꺼이 받아 들여야합니다. PL/SQL 대신 SQL에서 호출되는 함수 인 경우 SQL에서 VARCHAR2의 최대 크기가 4k이므로 한계는 4k가됩니다.