select 
subjcode 科目编号,               
lsubjname  科目名称,               
201701 开始期间,               
201712 结束期间          
from audadmin.audit_subjcode
上面这个语句运行正确
declare 
sdata nvarchar2(20) :='201701';
edata nvarchar2(20) :='201712';begin
select 
subjcode 科目编号,               
lsubjname  科目名称,               
sdata 开始期间,               
edata 结束期间          
from audadmin.audit_subjcode
end;
改成这样就出错了,网上搜索没找到答案,请问高手该怎么写,才能实现调用变量

解决方案 »

  1.   

    plsql 中不支持这样的查询; 只能写在过程中,返回这样的结果;sqlplus 倒是可以,只是数据量大了,看着不方便。
      

  2.   

    那请问有哪些变通的方法可以实现呢?可以给出例子语句吗?一个语句里面重复很多遍太容易出错了,也不利于修改。SQLSERVER里好像可以直接把@加变量,放到SELECT后面。
      

  3.   

    用 dbms_output.put_putline 拼接打印出来可以
      

  4.   

    ORACLE的PL SQL输出结果集不如SQL SERVER那么方便您可以把您的需求再完整的描述一下如过仅仅是把当前的结果集打印出来,可以用FOR 和PUTLINE方法打印
      

  5.   

    感觉复杂化了,这里只是想用变量的方式写个语句,然后在plsql下方显示查询结果。我之前的语句该怎么改,能给个语句吗