TM1:错误:语法不正确 接近 '|' (在 sql 查询中插入数值)



我正在尝试将数字变量"值"插入到十进制数据库列中。

我使用了这个查询语法:

SQL= 'INSERT INTO DB_Archive VALUES ( '''| dim1|''' , '''| dim2|''', '|Value|') ';

但是声明数字列似乎不正确,这给了我这个错误:

Error : Incorrect syntax Near '|'

我尝试将数值转换为字符串值,如下所示:

zAmoun= NumberToString(Value);
SQL= 'INSERT INTO DB_Archive VALUES ( '''| dim1|''' , '''| dim2|''', '''|StringToNumber(zAmount)|''') ';

但这是一个糟糕的举动,因为它在编译中工作并且没有返回任何错误,但在执行中它在这里返回此错误,因为表列是十进制:

Error : Error Converting data Type varchar to numeric

如果有人能帮助我知道在sql查询中声明数字列的正确语法是什么,我会很高兴,因为第一个声明不起作用。

我将不胜感激。

也许这些信息可以帮助您:

开头:请不要以大写字母开头的变量名称。制作类似 vSQL 或 sqlRequest 的东西。

您尝试使用字符串构建 SQL 命令。孔字符串不能包含数字。TM1 对它非常严格。每个数字都必须转换为字符串。

vsValue = NumberToString(value);
vsSQL= 'INSERT INTO DB_Archive VALUES ( '''| dim1|''' , '''| dim2|''', '''|vsValue|''') ';

也许您的 SQL 目标需要特定形式的值。例如,使用","作为小数分隔符。因此,您可以NumberToStringEx()命令

vsValue = NumberToStringEx(value, '0.0####', ',', '.');
vsSQL= 'INSERT INTO DB_Archive VALUES ( '''| dim1|''' , '''| dim2|''', '''|vsValue|''') ';

在这里您可以找到更多信息

使用引号,如果值是数字或字符串,您将为 sql 目标提供信息。所以也许有必要删除引号:

vsValue = NumberToString(value);
vsSQL= 'INSERT INTO DB_Archive VALUES ( '''| dim1|''' , '''| dim2|''', '|vsValue|') ';

最新更新