【问题标题】:INSERT Query SQL (Error converting data type nvarchar to (null))INSERT 查询 SQL(将数据类型 nvarchar 转换为 (null) 时出错)
【发布时间】:2015-10-15 11:31:00
【问题描述】:

我正在尝试运行INSERT 查询,但它要求我将varchar 转换为null。代码如下:

INSERT Runtime.dbo.History (DateTime, TagName, vValue)
VALUES ('2015-09-10 09:00:00', 'ErrorComment', 'Error1')

错误信息:

将数据类型 nvarchar 转换为 (null) 时出错。

问题出在vValue 列。

column vValue(nvarchar, null) 

它在数据库中的样子:

vValue 中的值由我正在使用的程序放置。我只是想手动插入数据库。

上次发错栏目了,抱歉。

【问题讨论】:

  • 'Error1' 无法转换为浮点数。浮点数本质上是一个数字。
  • 我使用了错误的列,但现在我得到另一个错误
  • Value 是什么数据类型?它是计算列吗?
  • 请正确标记您的问题。您没有同时使用 MySQL 和 SQL Server...

标签: sql-server historian wonderware


【解决方案1】:

联系 Wonderware 支持后,我发现 vValue 列设计不支持 INSERT。这是一个字符串值,应该通过 StringHistory 表进行更新。

【讨论】:

    【解决方案2】:

    数据库中列值的类型是什么?

    如果是浮点数,你应该插入一个数字,而不是字符串。

    将“error1”转换为 FLOAT 是无意义的。 浮点数是一个数字示例:1.15、12.00、150.15 当您尝试将“Error1”转换为浮动时,他尝试将文本“error1”转换为数字,但他不能,这是逻辑。

    您应该在列中插入一个数字。

    【讨论】:

    • 似乎我使用了错误的列,但现在我得到另一个错误
    • 如果你尝试:INSERT Runtime.dbo.History (DateTime, TagName, value, vValue) VALUES ('2015-09-10 09:00:00','ErrorComment', null, 'Error1 ') ?
    • 它不起作用,因为我试图在 3 个列中插入 4 个值
    • 我将尝试添加值列,看看这样我将有 4 个列的 4 个值
    • 您使用什么软件来管理您的数据库?我知道在带有 postgresql 的 PGadmin 中,我们可以右键单击一个表,选择创建请求结构的脚本和“脚本插入”。您只需添加值。 PS您可以编辑您的评论而不是添加新评论^^
    【解决方案3】:

    我想我可以帮助你解决你的问题,因为我有一个不错的测试环境可以试验。

    Runtime.dbo.History 不是一个可以直接与之交互的表,它是一个View。在我们的例子中,视图定义为:

    select * from [INSQL].[Runtime].dbo.History
    

    ...我认为这意味着您正在查看的历史数据来自 Historian 平面文件存储本身,即 Wonderware 专有系统。如果您扩展 SQL Server Management Studio 的

    ,您可能会看到一些成功
    Server Objects -> Linked Servers -> INSQL
    

    ...和那里的数据一起玩,但我真的不推荐它。

    话虽如此,您需要插入标签历史记录的原因是什么?对于您需要的目的,可能还有其他解决方法。

    【讨论】:

    • 我正在使用 Wonderware 产品的 2014 R2 版本。我想做的是在以前将数据插入 Historian。我正在通过 Intouch 插入数据,这就是我要运行的查询。
    • Historian 在我实时更改程序内部的值时效果很好,但如果我想传递一些数据,我不能
    • 这可能真的是向 WW 技术支持提出的问题。它有点打破了历史学家所做的整个流程。我知道他们将他们的“平面文件存储”用于不一定是 RDBMS 样式存储的历史学家,您只能通过 SSMS 访问它,因为他们为 InSQL 提供了 Provider 挂钩。我正在阅读有关可能可供使用的 InSQL 编辑器的资料
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2016-01-20
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多