2016-11-30 1 views
0

데이터를 스풀링하고 데이터를 XML로로드하기 위해 SQL 스크립트를 사용하고 있습니다.oracle sql 스크립트에서 변수를 사용할 수 있습니까?

다른 SQL 쿼리에서 값을 가져 오는 SQL 스크립트에서 변수를 사용할 수 있는지 확인하고 싶습니다. 이 같은

뭔가 :

var1= select count(1) from emp 

spool filename 


select * from dept where empcnt=var1 

가 작동 할 것인가? 이것이 최선의 방법인가 아니면 다른 방법인가?

답변

3

당신은 bind variables으로, 다음과 같은 일을 할 수는 SQLPLUS를 사용하고 경우에만 SQL (안 PLSQL)를 원하는 경우 :

spool yourFile 
variable var1 number 
select count(1) into :var1 from dual; 
select * from dual where rownum = :var1; 

또 다른 방법을 substitution variables와 수 :

spool yourFile 
column var1 new_value valueFor_var1 
select count(1) as valueFor_var1 from dual; 
select * from dual where rownum = &var1; 

PLSQL 블록을 사용할 수있는 경우 다음을 수행 할 수 있습니다.

spool yourFile 
declare 
    var1 number; 
    vDummy varchar2(100); 
begin 
    select count(1) into var1 from dual; 
    select dummy into vDummy from dual where rownum = var1; 
    dbms_output.put_line(vDummy); 
end; 
/ 
관련 문제