[英]DECFLOAT Error While running Procedure in DB2
我正在DB2中執行以下過程。
create procedure checkUpdate()
LANGUAGE SQL
begin
DECLARE EOF INT DEFAULT 0;
DECLARE STMT VARCHAR(200);
DECLARE COL_NAME NVARCHAR(40);
Declare col_name_cursor cursor for
select c.column_name from sysibm.tables t join sysibm.columns c on t.table_schema = c.table_schema and t.table_name = c.table_name where t.table_schema ='ARCHANA' and t.table_name = 'ADULT' and c.data_type not like 'CHARACTER%';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET EOF = 1;
OPEN col_name_cursor;
WHILE EOF = 0 DO
FETCH FROM col_name_cursor INTO COL_NAME;
INSERT INTO GAUSSIAN_VALUES select CLASS,avg(COL_NAME),stddev(COL_NAME) from ADULT GROUP BY CLASS;
END WHILE;
CLOSE col_name_cursor;
end@
但是,在DB2命令窗口上執行此操作時出現以下錯誤。
SQL0420N在函數“ DECFLOAT”的字符串參數中找到無效字符。 SQLSTATE = 22018
我進行了一些調試,發現錯誤來自“聲明”光標行。 我將光標的選擇語句更改為“從成年人中選擇年齡”進行檢查,錯誤消失了。 選擇整數值時不會發生此錯誤。 在varchar情況下發生。 我被卡住了,不知道這里缺少什么鏈接。
謝謝!
COL_NAME是NVARCHAR類型...
您如何計算字符值的avg(COL_NAME),stddev(COL_NAME)
?
也許您想花點時間?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.