我尝试将数据从外部系统插入列,但它返回 nvarchar 格式的数据,因为数据实际上是数字格式。
因此数据会丢失,因为它会自动转换为指数格式。无法从这个外部系统转换数据类型。
是否有可能在将数据插入我的 MS-SQL 数据库时,它应该再次转换为数字格式?
我尝试将数据从外部系统插入列,但它返回 nvarchar 格式的数据,因为数据实际上是数字格式。
因此数据会丢失,因为它会自动转换为指数格式。无法从这个外部系统转换数据类型。
是否有可能在将数据插入我的 MS-SQL 数据库时,它应该再次转换为数字格式?
外部系统是什么意思?
例如,它是 MS Excel 电子表格,您仍然可以使用原生 t-sql 函数来转换列的数据类型。大多数外部数据也应该如此。
SELECT Name, Age, convert(decimal(5,2), Amount) FROM OPENQUERY (XLSX_NewSheet, 'Select * from [Sheet1$]')
或者
SELECT Name, Age, convert(decimal(5,2), Amount) FROM XLSX_NewSheet...[Sheet1$]
其中Name
和是 Excel 工作表的列标题Age
名称Amount
外部系统是 Salesforce 的数据提取工具,称为 Apex 数据加载器。由于 Salesforce 的限制,在提取超过 8 位的数字字段时,会自动转换为指数表示法,并且将相同的数据插入到 MS-SQL Db 中,这实际上不是正确的数据。