所以我已经使用SQL Server大约7年了,只是改变了工作,很多我们的产品都在Oracle SQL Developer中。第1天,不是享受甲骨文,而是希望最好。
我正在尝试做我认为非常简单和容易的事情,但我找到的所有方法都不起作用。我运行下面的错误。
绑定变量“Startdt”未声明匿名块已完成
我尝试过几种不同的方式,包括Enddt是怎样的。 DealerNbr工作得很好。查询本身我从SSRS报告中提取,但我必须声明变量,以便我可以测试/添加列。 SSRS工作正常。
DECLARE
DealerNbr NUMBER;
Startdt DATE;
Enddt DATE;
BEGIN
DealerNbr := 18913;
Startdt := TO_DATE ('2012-01-01','mm,dd,yyyy');
Enddt := '2012-12-31';
END;
select prq_payee_nbr ,
prq_status_cd
from payable_requisitions
where prq_payee_nbr = :DealerNbr
and prq_status_cd <> 'V'
and prq_dt between :Startdt and :Enddt
order by prq_dt
基本我只是想做最基本的事情。在SQL Server中它将是:
Declare @DealerNbr Int
,@Startdt date
,@EndDt date
Set @DealerNbr = '18913'
Set @Startdt = '2012-01-01'
Set @Enddt = '2012-12-31'
Select *
from payable_requistion
where prq_payee_nbr = @DealerNbr
and prq_dt between @Startdt and @EndDt
答案 0 :(得分:2)
VARIABLE cur REFCURSOR;
/
DECLARE
DealerNbr NUMBER := 18913;
Startdt DATE := DATE '2012-01-01';
Enddt DATE := DATE '2012-12-31';
BEGIN
OPEN :cur FOR
select prq_payee_nbr ,
prq_status_cd
from payable_requisitions
where prq_payee_nbr = DealerNbr
and prq_status_cd <> 'V'
and prq_dt between Startdt and Enddt
order by prq_dtl;
END;
/
PRINT cur;
或者
VARIABLE Startdt VARCHAR2;
VARIABLE Enddt VARCHAR2;
VARIABLE DealerNbr NUMBER;
BEGIN
:DealerNbr := 18913;
:Startdt := '2012-01-01';
:Enddt := '2012-12-31';
END;
/
select prq_payee_nbr ,
prq_status_cd
from payable_requisitions
where prq_payee_nbr = :DealerNbr
and prq_status_cd <> 'V'
and prq_dt between TO_DATE( :Startdt, 'YYYY-MM-DD' )
and TO_DATE( :Enddt, 'YYYY-MM-DD' )
order by prq_dtl;