DB2,PLSQL:我的脚本没有';行不通

DB2,PLSQL:我的脚本没有';行不通,plsql,db2,db2-luw,Plsql,Db2,Db2 Luw,我正在尝试在我的REDHAT VM上运行PL/SQL脚本 这是我的剧本: connect to WWW user XXX using VVV DECLARE message varchar2(20):= 'Hello, World!'; BEGIN dbms_output.put_line(message); END; / 这是我的命令: db2 -td/ -vf test.sql 这是我的错误: SQL0104N在“.”之后发现意外标记“DECLARE”。 预期代币可能包括

我正在尝试在我的REDHAT VM上运行PL/SQL脚本

这是我的剧本:

connect to WWW user XXX using VVV
DECLARE
   message  varchar2(20):= 'Hello, World!';
BEGIN
   dbms_output.put_line(message);
END;
/
这是我的命令:

 db2 -td/ -vf test.sql
这是我的错误:

SQL0104N在“.”之后发现意外标记“DECLARE”。
预期代币可能包括:“新”。SQLSTATE=42601


我尝试了很多事情,结果总是一样的。有人能帮我吗

您将语句终止符定义为
/
,但不要将任何语句终止符与
连接到
语句一起使用。附加一个
/
,它应该可以工作


另外,请检查
PL/SQL
支持是否已打开。您需要设置DB2_COMPATIBILITY_向量,以启用对oraclepl/SQL的语法支持。有关详细信息,请参见。

将语句终止符定义为
/
,但不要将任何语句终止符与
连接到
语句一起使用。附加一个
/
,它应该可以工作


另外,请检查
PL/SQL
支持是否已打开。您需要设置DB2_COMPATIBILITY_向量,以启用对oraclepl/SQL的语法支持。有关详细信息,请参阅。

是否要将其作为脚本运行或定义过程/函数?官方文档是一个很好的开始。请参阅我的更新答案-我怀疑您的数据库没有启用PL/SQL。我发现,DB2 oracle兼容性的一个常见问题是,启用DB2_兼容性_向量是不够的。如果您有此选项,可以执行以下操作:db2set DB2_COMPATIBILITY_VECTOR=ORA db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES然后重新启动DB2或重新启动数据库主机,在此之后,oracle兼容性似乎只对新数据库有效,因此您可能还需要删除并重新创建数据库,默认语句终止符是“;”(分号)因此,如果您试图运行PLSQL,我发现有必要在每个分号后面添加“---”(双连字符),除了“END;”处的最后一个分号之外。。但是,如果将“/”设置为终止符,则这可能不适用(我没有尝试)您想将其作为脚本运行还是定义一个过程/函数?官方文档是一个很好的开始,请参阅我更新的答案-我怀疑您的数据库没有启用PL/SQLDB2 oracle兼容性的一个常见问题是,启用DB2_兼容性_向量是不够的。如果您有此选项,可以执行以下操作:db2set DB2_COMPATIBILITY_VECTOR=ORA db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES然后重新启动DB2或重新启动数据库主机,在此之后,oracle兼容性似乎只对新数据库有效,因此您可能还需要删除并重新创建数据库,默认语句终止符是“;”(分号)因此,如果您试图运行PLSQL,我发现有必要在每个分号后面添加“---”(双连字符),除了“END;”处的最后一个分号之外。。但是,如果将“/”设置为终止符,则这可能不适用(我没有尝试)