C# 甲骨文及;SQL Server数据集比较

C# 甲骨文及;SQL Server数据集比较,c#,sql-server,oracle,C#,Sql Server,Oracle,我试图在来自两个不同数据库的两个数据集之间进行C#dataset caparison。数据集1来自Oracle,数据集2来自SQL Server,在运行ETL作业将数据从Oracle移动到SQL Server以验证结果之后,我将比较这些数据集。我遇到的问题是,SQL Server中的数据匹配,但从源到目标日期的格式不同,而且小数点舍入也不同 有没有人有一个好办法来回避这个问题。我正在考虑从填充数据集的源表和目标表更改查询,以格式化日期等。。。因此比较会更容易,但我想知道还有其他方法吗?对于日期格

我试图在来自两个不同数据库的两个数据集之间进行C#dataset caparison。数据集1来自Oracle,数据集2来自SQL Server,在运行ETL作业将数据从Oracle移动到SQL Server以验证结果之后,我将比较这些数据集。我遇到的问题是,SQL Server中的数据匹配,但从源到目标日期的格式不同,而且小数点舍入也不同


有没有人有一个好办法来回避这个问题。我正在考虑从填充数据集的源表和目标表更改查询,以格式化日期等。。。因此比较会更容易,但我想知道还有其他方法吗?

对于日期格式,请将NLS_date_FORMAT环境变量设置为所需的格式。这假设您捕获字符串中的数据。Oracle将按照您指定的格式格式化日期。至于小数点舍入,我不明白。这些数字应该是相同的。如果您得到一个小数点并需要一个逗号,请使用NLS_MUMERIC_字符“DG”选择要使用小数点或组分隔符的字符

例如,“,”选择“.”作为小数点,选择逗号作为组分隔符


可以从客户端操作系统以及Oracle会话中设置环境变量。为此,请发出
alter session set nls_date_format='yyyyymmddhh24miss'或任何最适合您的格式。

谢谢Mitch,我正在进行数据集到数据集的比较,实际上不需要对数据集执行任何操作,只需填充它们,然后进行比较,所以除了ETL的验证检查之外,我不想映射它们。谢谢,伙计,我从Windows机箱连接到Oracle,然后在这台机器上使用Oracle和SQL Server的两个数据源进行C#比较。我可以在Windows计算机上设置NLS\U DATE\U FORMAT环境变量吗?或者这是特定于Unix的?我没有访问Oracle物理机器的权限来更改任何配置?您好,您也可以在客户端上执行此操作,没有问题。甚至可以在会话中执行此操作:如果需要,请更改会话集nls_date_format='yyyymmddhh24miss'。我编辑了这个问题的答案。谢谢,伙计,我会尝试一下。干杯