Plsql 给出错误的PL/SQL脚本

Plsql 给出错误的PL/SQL脚本,plsql,Plsql,我必须处理一些较旧的EDW脚本,我认为它们在PL/SQL中,并从Oracle表查询fech数据。但是它们有一些问题,如图所示,声明变量的部分给出了错误。我不明白为什么 下面是脚本的一部分 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';

我必须处理一些较旧的EDW脚本,我认为它们在PL/SQL中,并从Oracle表查询fech数据。但是它们有一些问题,如图所示,声明变量的部分给出了错误。我不明白为什么

下面是脚本的一部分

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语句


有什么帮助吗?

如果它确实是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\u cal\u key
定义为
数字
,因此无法分配字符串
“begin\u cal\u key”
如果将脚本插入SQL*Plus,则将在没有ORA-00900错误的情况下执行该脚本。我猜您在Toad中运行时收到了错误。

是的,我知道这种语法,但我使用的旧脚本也在使用(不知道是哪种环境)上述内容。那么,他们是不是在为任何其他平台(如DB2或类似的平台)提供支持?