使用声明的变量执行查询

时间:2014-03-20 19:48:40

标签: sql plsql

我是PL / SQL的新手。我应该在下面的块中添加什么来执行它。如果我使用值单独运行查询,我可以创建但是当我将datefrom和dateto值替换时会出现编译错误。请求帮助。

DECLARE @datefrom DATE;
DECLARE @dateto DATE;
SET @datefrom = '14-Mar-14';
SET @dateto = '15-Mar-14';
select a.* from (select count (distinct CODE) CODES from H_ABC_TABLES WHERE hist_dt between      
@datefrom and @dateto AND HIST_ACTION != 'D') a;

1 个答案:

答案 0 :(得分:0)

您可以使用替代变量或绑定变量。

<强> Subsitution:

DEFINE datefrom = '14-Mar-14';
DEFINE dateto = '15-Mar-14';
select a.* from (select count (distinct CODE) CODES from H_ABC_TABLES WHERE hist_dt between      
&datefrom and &dateto AND HIST_ACTION != 'D') a;
UNDEFINE datefrom;
UNDEFINE dateto;

在查询运行之前替换它。

绑定变量:

select a.* from (select count (distinct CODE) CODES from H_ABC_TABLES WHERE hist_dt between      
:datefrom and :dateto AND HIST_ACTION != 'D') a;

在SQL Developer中解决此问题,系统会提示您填写两个变量。