plsql에서 익명 블록을 사용하여 표 전체를 인쇄하는 방법?
사용하고싶습니다DBMS_OUTPUT.PUT_LINE, 그러나 행의 수는 1개만 넘습니다.테이블에 순차적으로 늘어나는 것이 없어서 루프를 사용할 수 없습니다.표의 각 행을 출력할 수 있는 방법이 있습니까?
이런 걸로 해보세요.
SET SERVEROUTPUT ON
BEGIN
-- A PL/SQL cursor
FOR cursor1 IN (SELECT * FROM table1)
LOOP
DBMS_OUTPUT.PUT_LINE('Column 1 = ' || cursor1.column1 ||
', Column 2 = ' || cursor1.column2);
END LOOP;
END;
/
이를 통해 다음과 같은 도움이 됩니다.
BEGIN
FOR MY_CURSOR IN (SELECT COLUMN1,COLUMN2,COLUMN3 FROM MY_TABLE)
LOOP
DBMS_OUTPUT.PUT_LINE('COLUMN1 = ' || MY_CURSOR.COLUMN1 ||',
COLUMN2 = ' || MY_CURSOR.COLUMN2 ||',
COLUMN3 = ' || MY_CURSOR.COLUMN3);
END LOOP;
END;
가장 빠르고 더러운 방법은 사실 SQL*Plus를 통해서입니다.
SQL> set lines 200
SQL> set heading off
SQL> set feedback off
SQL> spool $HOME/your_table.out
SQL> select * from your_table;
SQL> spool off
SQL*Plus는 기본적인 보고 기능을 갖추고 있으며 HTML 파일도 생성할 수 있습니다.
테이블이 매우 길거나(많은 행) 넓은 테이블(많은 열)이 있는 경우, 이와 같이 파일에 직접 출력하는 것이 더 나을 수 있습니다.
declare
fh utl_file.file_type;
begin
fh := utl_file.fopen('TARGET_DIRECTORY', 'your_table.lst', 'W');
for lrec in ( select * from your_table )
loop
utl_file.put( fh, id );
utl_file.put( fh, '::' );
utl_file.put( fh, col_1 );
utl_file.put( fh, '::' );
utl_file.put( fh, col_2 );
utl_file.put( fh, '::' );
utl_file.put( fh, to_char ( col_3, 'dd-mm-yyyy hh24:mi:ss' ) );
utl_file.new_line(fh);
end loop;
utl_file.fclose(fh);
end;
/
이것은 무리처럼 보일 수 있지만, PUT() 호출은 USER_로부터 생성될 수 있습니다.TAB_COLUMNS. UTL_FILE과 함께 gotchas가 몇 개 있으니 설명서를 읽어보세요.
DBMS_OUTPUT....와 동일한 컨트롤 구조를 사용할 수 있습니다.
begin
for lrec in ( select * from your_table )
loop
dbms_output.put( id );
dbms_output.put( '::' );
dbms_output.put( col_1 );
dbms_output.put( '::' );
dbms_output.put( col_2 );
dbms_output.put( '::' );
dbms_output.put( to_char ( col_3, 'dd-mm-yyyy hh24:mi:ss' ) );
dbms_output.new_line;
end loop;
end;
/
... 하지만 SQL*Plus에서 스풀링하려면 더 쉬운 옵션을 사용하는 것이 어떨까요?
언급URL : https://stackoverflow.com/questions/2348319/how-to-print-out-the-whole-table-using-anonymous-block-in-pl-sql
'programing' 카테고리의 다른 글
| -moz- and -webkit-는 무엇입니까? (0) | 2023.10.01 |
|---|---|
| XML 문자열을 인쇄할 형식 지정 XML 문자열 (0) | 2023.10.01 |
| WEXIT STATUS(상태)는 무엇을 반환합니까? (0) | 2023.10.01 |
| Angularjs:ng-option을 사용할 때 빈 옵션을 선택에 포함하는 방법 (0) | 2023.10.01 |
| 마지막 깃 커밋으로 롤백 (0) | 2023.10.01 |