我正在使用SQL脚本来假脱机数据并将数据加载到XML
我想检查一下我是否可以在SQL脚本中使用从另一个SQL查询中获取值的变量。
这样的事情:
var1= select count(1) from emp
spool filename
select * from dept where empcnt=var1
会起作用吗?这是最好的方式还是其他任何方式?
答案 0 :(得分:3)
如果您使用的是SQLplus,并且只需要SQL(而不是PLSQL),则可以使用bind variables执行以下操作:
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;
/