2010-02-19 3 views
7

200 개 이상의 select 쿼리를 실행하고 결과를 파일에 추가하려고합니다. 모든 쿼리는 날짜 - 시간 변수의 유일한 차이입니다. 모든 쿼리를 작성해야하는 루틴을 만들 수있는 권한이 없습니다. 결과를 저장할 뷰 또는 다른 테이블을 생성 할 권한이 없습니다. PL/SQL에 액세스 할 수 없습니다.Oracle 10g - 파일에 쿼리 결과 쓰기

이제이 쿼리 각각의 결과 (모든 결과는 정수입니다)로 보고서를 작성해야하지만 다른 솔루션을 찾지는 않지만 하나씩 실행하고 결과를 하나씩 복사하는 것처럼 보입니다 .

당신 중 놀라운 사람들이 내게 이것을 줄 수 있습니까? 일종의 긴급한 일입니다.

답변

4

- 1과 같이 텍스트 파일에 쿼리를 넣어 :

set pagesize 0; 

select some_field 
from some_table; 

select another_field 
from another_table; 
/

2 - 어딘가에 저장하십시오 (let 's sa YC : \ my_file.sql)

3 - 명령 프롬프트에서 다음을 실행합니다

c:\>sqlplus -s username/[email protected] <tmp.sql> output.txt 

4 - 당신은 SQLPLUS에 액세스 할 수있는 경우 "OUTPUT.TXT"내부 봐

+0

그는 여전히 에코를하지 않으면 안됩니다. 그렇지 않으면 쿼리 문자열이 출력되지 않습니까? – FrustratedWithFormsDesigner

+0

우수 Joseph. 이것도 시도해 볼 것입니다. 고맙습니다!! – Daniel

+0

쿼리가 출력에 없지만 열 이름은입니다. 그것을 타는 방법이 있습니까 ?? – Daniel

2

출력을 파일로 스풀링 할 수 있습니다.

spool (URL - Oracle 10.2 사용자 설명서) 명령을 참조하십시오.

또한

:

http://www.praetoriate.com/t_garmany_easysql_the_spool_command.htm

그리고 무슨 일이 몇 가지 레이아웃 팁으로 나타납니다

http://www.oracle.com/technology/oramag/code/tips2004/020904.html

+0

이미 시도했지만 제대로 작동하지 않았습니다. 그것은 동시에 쿼리를 실행하면 쿼리 문자열과 또한 일종의 휴식을 저장합니다. – Daniel

+0

쿼리를 실행하기 전에'set echo off;'를 시도하십시오. 이렇게하면 쿼리 문자열이 표시되지 않습니다. 물론 스크립트의 시작 부분에서 'echo'가 켜져 있었으므로 끝까지 다시 켜야합니다. 항상 물건을 찾은 상태로 두십시오;) – FrustratedWithFormsDesigner

+0

그 중 하나를 시도해보십시오. – Daniel

0

, 당신은 실행할 수 있습니다 익명의 PL/SQL 블록.

DECLARE 
v_cnt number; 
BEGIN 
select ... into v_cnt ...; 
dbms_output.put_line(v_cnt); 
END; 
. 
spool out.log 
/
spool off