발췌문 :
FOR player IN rows LOOP
currentCount := maxCount;
DBMS_OUTPUT.PUT(player.FIRSTNAME || ' ' || player.LASTNAME || ':' || player.points || ' ');
--DBMS_OUTPUT.NEW_LINE();
END LOOP;
당신이 결과 출력하면 (루프 후) 루프 외부 DBMS_OUTPUT.NEW_LINE()
이동해야 한 라인으로 등장합니다.
FOR player IN rows LOOP
currentCount := maxCount;
DBMS_OUTPUT.PUT(player.FIRSTNAME || ' ' || player.LASTNAME || ':' || player.points || ' ');
END LOOP;
DBMS_OUTPUT.NEW_LINE();
방금 DBMS_OUTPUT.PUT_LINE
절차를 모방 DBMS_OUTPUT.PUT
후 루프 내에서 DBMS_OUTPUT.NEW_LINE();
유지 : 같은 코드가 보일 것이다. 코드에서
SQL> create or replace procedure output1
2 is
3 l_str varchar2(100);
4 l_status number;
5 begin
6 for i in 1..7
7 loop
8 dbms_output.put('Text_' || To_char(i));
9 dbms_output.new_line;
10 end loop;
11 end;
12/
Procedure created
SQL>
SQL> create or replace procedure output2
2 is
3 l_str varchar2(100);
4 l_status number;
5 begin
6 for i in 1..7
7 loop
8 dbms_output.put('Text_' || To_char(i));
9 end loop;
10 dbms_output.new_line;
11 end;
12/
Procedure created
SQL> exec output1;
Text_1
Text_2
Text_3
Text_4
Text_5
Text_6
Text_7
PL/SQL procedure successfully completed
SQL> exec output2;
Text_1Text_2Text_3Text_4Text_5Text_6Text_7
PL/SQL procedure successfully completed
: serveroutput
옵션을 사용
SET serveroutput ON size 32000;
REM Change output file name TO proj3-NetID.OUT!
SPOOL proj3-hgeorge3.OUT;
exec DBMS_OUTPUT.enable('100000000');
경우 (ON으로 설정)는 다음 DBMS_OUTPUT.enable
프로 시저를 호출의 필요가 없습니다. DBMS_OUTPUT.enable
을 호출하면 숫자 데이터 형식의 값을 문자열이 아닌 매개 변수로 전달해야합니다. 그렇습니다. 암시 적으로 데이터 형식을 변환하지만 피하는 것이 좋습니다. 버퍼의 최대 크기는 1 백만입니다.
루프 뒤에 DBMS_OUTPUT.NEW_LINE();을 추가하려고 했습니까? 나는'DBMS_OUTPUT.PUT()'명령을 모두 마친 후에야합니까? –