我正在尝试在来自两个不同数据库的两个数据集之间执行 C# 数据集 caparison。数据集一来自 Oracle,数据集二来自 SQL Server,在 ETL 作业运行以将数据从 Oracle 移动到 SQL Server 以验证结果后,我正在比较这些数据集。我遇到的问题是 SQL Server 中的数据匹配,但从源到目标的日期格式不同,小数点四舍五入。
有没有人有好的办法绕过这个问题。我正在考虑从填充数据集的源表和目标表更改我的查询以格式化日期等...这样比较会更容易,但我想看看是否还有其他方法?
最佳答案
对于日期格式,将 NLS_DATE_FORMAT 环境变量设置为所需的格式。这假定您捕获字符串中的数据。 Oracle 会将日期格式化为您指定的格式。对于小数点四舍五入,我不明白。这些数字应该是相同的。如果您得到小数点并想要逗号,请使用 NLS_MUMERIC_CHARACTERS 'DG' 选择要使用小数点或组分隔符的字符。
例如“.”选择“.”用于小数点和组分隔符的逗号。
环境变量可以从客户端操作系统设置,也可以从 Oracle session 中设置。为此,发出 alter session set nls_date_format = 'YYYYMMDDHH24MISS';
或任何最适合您的格式。
关于c# - Oracle 和 SQL Server 数据集比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105524/