【发布时间】:2020-06-25 15:41:19
【问题描述】:
我对我的自编码 informix 函数有疑问。
有谁知道为什么函数的返回值为'x'? 每个头的 SELECT 语句应该返回 19 个数据集。 因此,我希望“x”与自身级联 19 次 所以函数的返回值为'xxxxxxxxxxxxxxxxxxxxx'
我写的函数是:
CREATE function mydb.my_function(spAuftNr INTEGER, spPos INTEGER, spUPos INTEGER, spTeileNr INTEGER)
RETURNING VARCHAR;
DEFINE spWs_kz CHAR(1);
DEFINE spLfdnr CHAR(2);
DEFINE spLaenge CHAR(10);
DEFINE spBreite CHAR(10);
DEFINE spWegfall CHAR(1);
DEFINE spDicke CHAR(8);
DEFINE spReturn VARCHAR;
DEFINE tempy VARCHAR;
LET spReturn = '';
FOREACH SELECT to_char(ws_kz),to_char(lfdnr),to_char(laenge),to_char(breite),to_char(wegfall),to_char(dicke)
INTO spWs_kz, spLfdnr, spLaenge, spBreite, spWegfall, spDicke from my_table where auftnr = spAuftNr and pos = spPos and u_pos = spUPos and teile_nr = spTeileNr
LET spReturn = spReturn || 'x';
END FOREACH
RETURN (spReturn);
END function;
我希望有人可以帮助我。 我想你知道我能做的下一步是什么 意识到这一点。
最好的问候 西蒙
【问题讨论】:
-
还没有机会对此进行测试,但我认为问题在于当您将 spReturn 定义为 varchar 时,它默认为 varchar (1)。所以我认为,如果您将该定义更改为“定义 spReturn VARCHAR(20)”,那么您可能会看到所有的“x”值。您可能还需要更改“返回 varchar”部分。
-
是的,我认为你是对的。奇怪,我尝试定义“返回 VARCHAR (255);”和“定义 spReturn VARCHAR (255);”。但是昨天还是一样的结果。今天我得到了我的 19x "x" s。我将立即发布更正的版本昨天是漫长的一天。
标签: foreach char informix varchar