我要处理一些较旧的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语句。
任何帮助?
答案 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'