我可以在oracle sql脚本中使用变量吗?

时间:2016-11-30 22:36:10

标签: oracle oracle10g

我正在使用SQL脚本来假脱机数据并将数据加载到XML

我想检查一下我是否可以在SQL脚本中使用从另一个SQL查询中获取值的变量。

这样的事情:

var1= select count(1) from emp

spool filename


select * from dept where empcnt=var1

会起作用吗?这是最好的方式还是其他任何方式?

1 个答案:

答案 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;
/