gpt4 book ai didi

javascript - 转换 Node 项目中两个 SQL DB 之间传递的值

转载 作者:行者123 更新时间:2023-12-02 21:47:06 28 4
gpt4 key购买 nike

在我的 Node 项目中,我正在查询一个 SQL 数据库,然后根据需要转换数据,然后将其写入另一个 SQL 数据库。为了处理我需要向接收数据库写入字符串值,但该值可能为空(并且我不想向数据库写入“null”)的情况,我这样处理:

const sqlStringOrNull = function (value) {
return value ? "'" + value + "'" : null;
};

对于发送数据库使用“varchars”的前几种情况,这工作得很好。但现在我遇到的情况是,正在查询的数据库具有 char(9) 值。而且,据我所知,即使值本身有 4 个字符长,其余字符也将作为空格传递。因此,在我当前的实现中,虽然我没有收到错误,但当我通过控制台记录我的查询时,我会看到如下值:'1234'

我的问题是,首先,这是正在发生的事情吗? SQL Server 中的 char(9) 值是否始终具有 9 个字符,即使实际值少于该值?

如果是这样,在这种情况下我如何修改我的函数以 trim 值?我尝试的是这样的:

const sqlStringOrNull = function (value) {
if (value) {
value = "'" + value + "'";
return value.trim();
} else if (!value) {
return null;
}
};

这没有给我任何错误,但它似乎也没有按预期 trim 值。我在这里缺少什么?如何处理数据,以便当它是字符串时,它最终会被 trim ?

最佳答案

是的,具有 CHAR 数据类型的列将始终返回固定长度的数据,并用空格填充任何短值。

对于第二个代码块,您应该在添加单引号之前调用 .trim(),例如:

const sqlStringOrNull = function (value) {
if (value) {
return "'" + (value.trim ? value.trim() : value) + "'";
} else {
return null;
}
};

关于javascript - 转换 Node 项目中两个 SQL DB 之间传递的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60228565/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com