【发布时间】:2012-09-28 08:12:21
【问题描述】:
我在 DB2 PL/SQL 函数中声明一个游标如下:
create function query1(tbname VARCHAR(32), msisdn VARCHAR(32))
returns VARCHAR(40)
LANGUAGE SQL
READS SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
begin atomic
DECLARE vsql varchar(2000);
DECLARE dt_UTC date;
DECLARE C1 CURSOR FOR select productid from Subscription_000 where msisdn= 123456;
SET vsql = 'select productid from Subscription_000 where msisdn= 123456';
OPEN C1;
return '123';
end
@
我将以上内容保存到 k2.sql 和 当我尝试使用以下命令编译此函数时:db2 -td@ -f k2.sql 我收到以下错误:
DB21034E 该命令被作为 SQL 语句处理,因为它是 不是有效的命令行处理器命令。在 SQL 处理期间 返回:SQL0104N 在以下发现意外的标记“FOR” “声明 C1 光标”。预期的令牌可能包括: “”。行号=10。 SQLSTATE=42601
关于这里有什么问题......有什么建议吗?
【问题讨论】: