SQL Server]不允许从数据类型 nvarchar 到 varbinary(max) 的隐式转换。请使用 CONVERT 函数来运行此查询。 (257)
今天操作sqlserver数据库,插入一条数据报了一个
SQL Server]不允许从数据类型 nvarchar 到 varbinary(max) 的隐式转换。请使用 CONVERT 函数来运行此查询。 (257)
[ERR] INSERT INTO [dbo].[qrtz_triggers] VALUES (N'RuoyiScheduler', N'TASK_CLASS_NAME2', N'DEFAULT', N'TASK_CLASS_NAME2', N'DEFAULT', NULL, N'1604635860000', N'-1', N'5', N'PAUSED', N'CRON', N'1604635843000', N'0', NULL, N'2', N'')
原sql如下:
INSERT INTO [dbo].[qrtz_triggers] VALUES (N'RuoyiScheduler', N'TASK_CLASS_NAME1', N'DEFAULT', N'TASK_CLASS_NAME1', N'DEFAULT', NULL, N'1604635850000', N'-1', N'5', N'PAUSED', N'CRON', N'1604635842000', N'0', NULL, N'2', N'')
GO
排查发现 qrtz_triggers表的最后一个字段data的数据类型是varbinary(max) ,而插入的数据是N'' 是一个nvarchar类型,需要对其进行转换方可插入:
排查使用 CONVERT(varbinary(max), N'') 函数就可以处理这个报错问题,修改后的sql如下:
INSERT INTO [dbo].[qrtz_triggers] VALUES (N'RuoyiScheduler', N'TASK_CLASS_NAME1', N'DEFAULT', N'TASK_CLASS_NAME1', N'DEFAULT', NULL, N'1604635850000', N'-1', N'5', N'PAUSED', N'CRON', N'1604635842000', N'0', NULL, N'2', CONVERT(varbinary(max), N'')
)
GO

浙公网安备 33010602011771号