PL / SQL脚本给出错误

时间:2011-12-06 05:24:32

标签: plsql

我要处理一些较旧的EDW脚本,我认为这些脚本位于PL / SQL中,并且也可以从Oracle表中查询数据。但是它们存在一些问题,声明变量的部分如图所示给出错误。我无法理解为什么?

以下是脚本的一部分,

VARIABLE begin_exp_date varchar2(8)
VARIABLE end_exp_date varchar2(8)
VARIABLE begin_cal_key number

Declare
begin
    :begin_exp_date := 'begin_exp_date';
    :end_exp_date := 'end_exp_date';
    :begin_cal_key := 'begin_cal_key';
end;

这些行产生错误ORA-00900:无效的SQL语句。

任何帮助?

2 个答案:

答案 0 :(得分:1)

如果您在SQL * Plus中插入脚本,它将在没有ORA-00900错误的情况下执行。我猜你在Toad中运行时收到错误。

答案 1 :(得分:0)

如果它确实是PL / SQL,它应该更像是

DECLARE
    begin_exp_date varchar2(8);
    end_exp_date varchar2(8);
    begin_cal_key number;
BEGIN
    begin_exp_date := 'begin_exp_date';
    -- and so on
END;

如果需要,您可以为DECLARE部分中的变量设置常量值。请注意,您已将begin_cal_key定义为NUMBER,因此无法指定字符串'begin_cal_key'