dbms_output 버퍼를 늘리는 방법은 무엇입니까?
다음을 통해 동적 쿼리를 디버깅하려고 했습니다.dbms_output
하지만 쿼리 문자열이 너무 긴 것 같습니다.dbms_output
완충제
내가 받은 것:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_OUTPUT", line 148
ORA-06512: at line 1
버퍼 크기를 늘리는 방법이 있습니까?
DBMS_OUTPUT을 활성화하고 버퍼 크기를 설정할 수 있습니다.버퍼 크기는 1에서 1,000,000 사이입니다.
dbms_output.enable(buffer_size IN INTEGER DEFAULT 20000);
exec dbms_output.enable(1000000);
확인합니다.
편집
프랭크와 매트가 올린 댓글에 따라 Null로 활성화할 수도 있습니다.
exec dbms_output.enable(NULL);
buffer_size : 버퍼링된 정보의 상한(바이트)입니다.buffer_size를 NULL로 설정하면 제한이 없어야 합니다.최대 크기는 1,000,000이고 사용자가 buffer_size(NULL이 아님)를 지정한 경우 최소 크기는 2,000입니다.
버퍼 크기가 꽉 찼을 때.시도할 수 있는 몇 가지 옵션이 있습니다.
DBMS_OUTPUT 버퍼 크기를 1,000,000으로 늘립니다.
버퍼에 기록된 데이터를 필터링해 보십시오. DBMS_OUTPUT에 기록되는 루프가 있을 수 있으며 이 데이터는 필요하지 않습니다.
코드 내의 다양한 체크포인트에서 ENABLE을 호출합니다.호출할 때마다 버퍼가 지워집니다.
DBMS_OUTPUT.ENABLE(NULL)은 dbms_output에 있는 Oracle 문서의 하위 호환성을 위해 기본적으로 20000으로 설정됩니다.
사용자 정의 출력 디스플레이를 만들 수도 있습니다.아래의 토막글과 같은 것.
create or replace procedure cust_output(input_string in varchar2 )
is
out_string_in long default in_string;
string_lenth number;
loop_count number default 0;
begin
str_len := length(out_string_in);
while loop_count < str_len
loop
dbms_output.put_line( substr( out_string_in, loop_count +1, 255 ) );
loop_count := loop_count +255;
end loop;
end;
Link -Ref : dbms_output의 대안.putline @ 기준: 알렉산더
여기 있습니다.
DECLARE
BEGIN
dbms_output.enable(NULL); -- Disables the limit of DBMS
-- Your print here !
END;
언급URL : https://stackoverflow.com/questions/16476568/how-to-increase-dbms-output-buffer
'sourcecode' 카테고리의 다른 글
날짜 문자열이 ISO 및 UTC 형식인지 확인합니다. (0) | 2023.06.07 |
---|---|
벡터의 n번째 요소마다 추출 (0) | 2023.06.07 |
Excel 드롭다운 목록에서 글꼴 크기와 색상을 변경하려면 어떻게 해야 합니까? (0) | 2023.06.07 |
Oracle 수신기가 실행 중이지 않고 시작되지 않음 (0) | 2023.06.07 |
libs 폴더의 jars에 javadoc 또는 source를 어떻게 첨부합니까? (0) | 2023.06.07 |