DBMS_OUTPUT.PUT_LINE
을 사용하고 싶지만 행 수가 단지 1을 초과합니다. 순차적으로 증가하는 테이블에는 아무 것도 없으므로 루프를 사용할 수 없습니다. 테이블의 각 행을 인쇄 할 수있는 방법이 있습니까?pl SQL에서 익명 블록을 사용하여 전체 테이블을 인쇄하는 방법은 무엇입니까?
4
A
답변
10
다음과 같이 시도해보십시오.
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;
/
2
이 일의 신속하고 더러운 방법은 SQL의 *을 통해 실제로 플러스 :
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은 * 플러스는 기본보고 기능의 경우 몇 가지 참신한있다; 우리는 심지어 generate HTML files 수 있습니다.
매우 긴 테이블 (많은 행) 또는 넓은 테이블 (많은 열)을 사용하는 경우 파일에 직접 출력하는 것이 더 좋습니다.
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;
/
이것은 자질레처럼 보일 수 있지만 USER_TAB_COLUMNS에서 PUT() 호출을 생성 할 수 있습니다. UTL_FILE에 몇 가지 문제점이 있으므로 read the documentation입니다.
당신 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의 *에서 밖으로 스풀 위하여려고하는 경우에 게다가, 왜 쉽게 옵션을 사용하지?
0
이 도움이 될 수 있습니다 :
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;
관련 문제
- 1. PL/SQL에서 ARRAY의 모든 요소를 인쇄하는 방법은 무엇입니까?
- 2. PL/SQL에서 ORACLE_HOME을 확인하는 방법은 무엇입니까?
- 3. Ocaml에서 데이터 블록을 인쇄하는 방법은 무엇입니까?
- 4. PL/SQL에서 오류 반환
- 5. PL/SQL에서 날짜를 비교하는 방법
- 6. PL/SQL 블록을 저장할 위치
- 7. pl/sql에서 오류 처리
- 8. 전체 코드 블록을 단계별로 실행하는 방법은 무엇입니까?
- 9. JavaScript에서 전체 HTML 요소를 인쇄하는 방법은 무엇입니까?
- 10. 배열에서 전체 행을 인쇄하는 방법은 무엇입니까?
- 11. JScrollPane의 전체 내용을 인쇄하는 방법은 무엇입니까?
- 12. PL-SQL에서 영향을받는 행 얻기
- 13. PL/SQL에서 일종의 레코드 만들기
- 14. SQL에서 C#을 사용하여 데이터 테이블을 만드는 방법은 무엇입니까?
- 15. LINQ를 사용하여 SQL에서 전체 그래프로드하기
- 16. PL/SQL에서 Java 메소드를 작성하려면
- 17. Pl/sql에서 이메일을 보내는 방법
- 18. PL/SQL에서 응용 프로그램 구현
- 19. PL/SQL에서 대기열 가입자를 생성하는 구문은 무엇입니까?
- 20. smarty가 블록을 인쇄하는 것으로 말하십시오.
- 21. sql에서 timestamp와 함께 날짜를 인쇄하는 쿼리는 무엇입니까?
- 22. oracle pl/sql에서 integer의 bitstring 길이를 얻는 방법은 무엇입니까?
- 23. PL/SQL에서 변수를 통해 동적으로 삽입하는 방법은 무엇입니까?
- 24. PL/SQL에서 세션 변수의 상태를 어떻게 쿼리합니까?
- 25. PL/SQL에서 컬럼 반복 반복
- 26. 전체 블록을 선택 가능하게하십시오
- 27. sql에서 간단한 테이블을 선택하고 페이지에 표시하는 방법은 무엇입니까?
- 28. PL/SQL-REGEXP_REPLACE를 사용하여 문자열의 끝에서 0D를 제거하는 방법은 무엇입니까?
- 29. printf를 사용하여 size_t를 인쇄하는 올바른 방법은 무엇입니까?
- 30. Oracle PL/SQL에서 웹 서비스 사용하기
는 어떻게 다음 행으로 이동 커서에 증가 할 수 있습니까? – n0ob
위와 같은 암시 적 커서는 다음 행을 자동으로 가져오고 가져올 행이 없을 때 종료됩니다. –