Oracle SQL Developer SQL 워크 시트 창에서 텍스트 인쇄


90

Oracle SQL을 사용하고 있습니다 (SQLDeveloper에서 SQL 워크 시트 사용). 선택하기 전에 다음과 같은 명세서를 인쇄하고 싶습니다.

PRINT 'Querying Table1';
SELECT * from Table1;

텍스트 출력을 인쇄 / 표시하려면 무엇을 사용합니까? 그것은 나에게 오류를 제공하기 때문에 인쇄 Table1가 아닙니다 : Bind Variable is NOT DECLARED. DBMS_OUTPUT.PUT_LINE은 알 수없는 명령입니다. (분명히, 저는 경험이없는 SQLDeveloper와 Oracle 사용자입니다. Print와 동의어가있을 것 같지만 그것이 무엇인지 모른 채 도움말을 찾는 데 어려움이 있습니다.)

답변:


143

여기에 이미지 설명 입력

간단한 설명 :

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('simple comment');
end;
/

-- do something

begin
    DBMS_OUTPUT.put_line('second simple comment');
end;
/

당신은 얻어야한다 :

anonymous block completed
simple comment

anonymous block completed
second simple comment

변수의 결과를 출력하려면 여기에 또 다른 예가 있습니다.

set serveroutput on format wrapped;
declare
a_comment VARCHAR2(200) :='first comment';
begin
    DBMS_OUTPUT.put_line(a_comment);
end;

/

-- do something


declare
a_comment VARCHAR2(200) :='comment';
begin
    DBMS_OUTPUT.put_line(a_comment || 2);
end;

출력은 다음과 같아야합니다.

anonymous block completed
first comment

anonymous block completed
comment2

1
첫 번째 줄은 포장 된 형식에 대한 서버 출력을 설정합니다. WRAPPED 형식으로 serveroutput을 설정해야합니다.
geographika

나는 이것을 작동시킬 수 없다. set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual 나에게 준다 : select * from dual; Error report: ORA-06550: line 7, column 1: PLS-00103: Encountered the symbol "SELECT" 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action
dwjohnston

9
최신 버전의 SQL Developer에서는 먼저 메뉴 표시 줄보기> Dbms 출력을 사용하여 DBMS 출력 창을 열어야합니다.
Bruno Ranschaert 2014

하지만 스크린 샷과 텍스트가 없었을 수도 있었지만 +1 haha ​​였을 것입니다
David Mann

41
PROMPT text to print

참고 : Run 문 (Ctl + Enter)이 아닌 Run as Script (F5)를 사용해야합니다 .


1
이것은 매우 유용합니다. 감사!
sunlover3

실행 문 (Ctl + Enter)도 나를 위해 작동합니다.
Pascal R.

21

당신은 수있는 에코 설정 에에 :

set echo on
REM Querying table
select * from dual;

SQLDeveloper에서 F5 키를 눌러 스크립트로 실행합니다.


나는 이것을 대답으로 받아 들였지만 다른 대답에는 더 많은 점수가 있다는 것을 알았으므로 동의를 변경했습니다. 그러나 이것은 저에게 효과적이며 좋은 대답입니다.
thursdaysgeek 2014 년

13

다음과 같은 select 문에 텍스트를 넣을 수 있습니다.

SELECT 'Querying Table1' FROM dual;

8

주요 답변은 dbms 출력 창을 열어야하는 새로운 설치 단계를 생략했습니다.

여기에 이미지 설명 입력

그런 다음 내가 사용한 스크립트 :

dbms_output.put_line('Start');

다른 스크립트 :

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('jabberwocky');
end;

7

나를 위해, 나는 그것을 함께 작동시킬 수 있었다.

set serveroutput on format word_wrapped;

래핑 및 WRAPPED에서 오류가 발생했습니다. SQLPLUS 명령이 실패했습니다. 인수가 충분하지 않습니다.


1

모든 SQL 문이 에코되는 것을 원하지 않지만 스크립트의 쉽게 식별 할 수있는 결과 만 보려면 다음과 같이하십시오.

에코 설정

REM MyFirstTable

에코 끄기

MyFirstTable에서 삭제;

에코 설정

REM MySecondTable

에코 끄기

MySecondTable에서 삭제;

위 예제의 출력은 다음과 같습니다.

-REM MyFirstTable

13 개 행이 삭제되었습니다.

-REM MySecondTable

27 개 행이 삭제되었습니다.


0

시작-종료를 생략하면 오류입니다. 그래서 나를 위해 이것은 작동합니다 (다른 것은 필요하지 않습니다).

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.