dbms_output.put_line
이 한 번에 2000자를 초과하여 인쇄 할 수없는 다른 사람이 있습니까?오라클 pl/sql 버그 : put_line 2000자를 초과 할 수 없습니다.
스크립트는 다음과 같습니다
set serveroutput on size 100000;
declare
big_str varchar2(2009);
begin
for i in 1..2009 loop
big_str := big_str||'x';
end loop;
dbms_output.put_line(length(big_str));
dbms_output.put_line(big_str);
end;
/
내가 복사 나 붙여되어 있어야합니다 생각되는 있었다 만 2000 자, 아니 2009 년 나에게 말했다 편집기 (메모장 ++)로 출력을 붙여. 이것은 또한 몇 가지 테스트 스크립트에서 발생합니다. 2000 자만 인쇄됩니다. 이 출력에 새로운 라인을 추가
dbms_output.put_line(length(big_str));
dbms_output.put_line(substr(big_str,1,1999));
dbms_output.put_line(substr(big_str,2000));
, 작업중인 텍스트 서식이있을 때 열심히 읽을 수 있습니다 :
나는 다음과 같이 인쇄 할 수있는 해결 방법이 있습니다.
누구나 눈치 채셨습니까? 정말 버그입니까? 아니면 모호한 기능입니까? 더 나은 해결 방법이 있습니까? 거기에 다른 정보가 있습니까?
Oracle 버전은 PL/SQL Developer (Allround Automation에서)를 사용하여 10.2.0.3.0입니다.
절대 시도하지 않았습니다. 품질 관리에 많은 결과가 있습니다. 동적 SQL입니까? –
왜 그것이 버그라고 생각합니까? 어쩌면 put_line은 디자인 상 2000 자로 제한 될 수 있습니다. – skaffman
@Skaffman : put_line 문서에서 2000 자 이상을 인쇄하지 못했습니다. 또한 2000 자의 하드 제한이 있고이를 초과하면 오류가 발생할 것으로 예상되며 2000 년 이후의 모든 문자는 자동으로 삭제되지 않습니다. – FrustratedWithFormsDesigner