我是IBM db2存储过程的新手,我想要做的是从表中获取列的值并根据这些值构建一个select查询,这是我尝试过的,不知道如何继续
CREATE TYPE currencySymbols AS VARCHAR(20) ARRAY[100]@
CREATE PROCEDURE ins_curr_ano(IN crsymbol VARCHAR(20), IN cost1 integer, IN cost2 integer, IN teirId integer)
BEGIN
DECLARE currencies currencySymbols;
DECLARE maxCount INTEGER DEAFULT 0;
set currencies = ARRAY[SELECT distinct(CURR_SYMBOL) as currencySymbols FROM CURRENCY_MAPPING];
set maxCount = CARDINALITY(currencies);
for i in 1..maxCount loop
dbms_output.put_line(i);
end loop;
END@
以下是我得到的错误:
DB21034E该命令作为SQL语句处理,因为它不是 有效的命令行处理器命令。在SQL处理期间,它返回: SQL0104N在“for i in”之后发现了一个意外的令牌“循环” 1..maxCount“。预期的代币可能包括:”(“。行号= 13。 SQLSTATE = 42601
答案 0 :(得分:1)
代码中的for ... loop
语句具有PL / SQL语法,而其他所有语句都具有DB2 SQL PL语法。你不能在同一个例程中混合两者。