簡體   English   中英

在DB2中運行Procedure時發生DECFLOAT錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM