2014-12-20 1 views
0

주어진 부서 이름에 직원 이름을 표시하는 간단한 스크립트 파일을 작성하려고합니다. 주어진 부서 이름은 대소 문자를 구별하지 않습니다. 스크립트 실행 후 명령이 표시되지 않습니다.clrscr()과 동일한 기능은 무엇입니까? Oracle SQL?

나는 SQL의 *의 PLUS와 내가 지금까지했던

EDIT script // script is the file name the default extension is .SQL 

하고 스크립트 파일 내부에 내가 쓴 것입니다을 사용하는 다음과 같은 SQL에 다음

SET VERIFY OFF 

SELECT Ename, dname 
FROM emp, dept 
WHERE emp.deptno = dept.deptno 
AND UPPER(Dname) = UPPER('&dname'); 

SET VERIFY ON 

* 플러스

START script 

쿼리가 정상적으로 작동하지만이 부분을 수행하는 방법을 모릅니다. "스크립트를 실행 한 후 명령이 표시되지 않습니다."

답변

3

아마 당신이 찾고 있습니다

SET ECHO OFF 

타 옵션은 명령 행에서 -S (자동) 옵션을 의 SQL * Plus를을 시작하는 것입니다. the documentation에서 :

-S [ILENT]

는 SQL를 시작할 때 일반적으로 표시되는 명령 프롬프트, 명령의 에코 및 배너를 포함한 모든 SQL 플러스 정보 및 프롬프트 메시지를 표시하지 않습니다 을 더한. 라는 제목으로 질문에 대한로서


:

clrscr()의 상응하는 무엇

당신이 ANSI escape sequenceESC[2J를 사용하여, ANSI 터미널을 사용하는 경우 화면을 지워야합니다.

SET ECHO OFF 
SET SERVEROUTPUT ON 
VAR ANSI_TERM_CLEAR VARCHAR2 (10) 
BEGIN SELECT CHR(27)||'[2J' INTO :ANSI_TERM_CLEAR FROM DUAL; END; 
/
PRINT :ANSI_TERM_CLEAR 
+0

에코 설정을 해제했는데 변경 사항을 알지 못했지만 이전 쿼리가 그대로 남아 있고 화면이 지워지지 않았습니까? 에코 오프 (SET ECHO OFF)가해야 할 일이 아닙니까? – Rsaleh