【发布时间】:2017-04-26 20:23:18
【问题描述】:
我有两个数据库,一个是Oracle 11g,另一个是Sql Server 2012。Oracle 数据库中有一个表,其中包含一个名为BASE_ID 的列。这由工作订单号组成。
在 Sql Server 数据库中,还有一个表,其中包含一个名为 WorkOrders 的列。这也包含工作订单号。我需要做的是将 Oracle 列中的内容与 SQL Server 列中的内容进行比较,并显示 Oracle 中的内容而不是 Sql Server 中的内容。我在这里有点难过,即使是一个起点。我有点只是在拍罐子。这个烂摊子是我目前所拥有的:
private void compare()
{
try
{
if (con.State != ConnectionState.Open)
con.Open();
DataTable t = new DataTable();
OracleCommand oraCmd = new OracleCommand("SELECT BASE_ID FROM WORK_ORDER x WHERE NOT EXISTS(SELECT NULL FROM [SQLServer].[BACRTest].[WorkOrders] y WHERE y.WorkOrder = x.BASE_ID)", oraconn);
OracleDataAdapter dt = new OracleDataAdapter(oraCmd);
dt.Fill(t);
dataGridView3.DataSource = t;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
这只是给我一个 ORA-00903: invalid table name 错误,这很公平,因为我并没有真正期望它会起作用。
非常感谢任何建议。
【问题讨论】:
-
为什么不分别从两个数据库中获取日期,然后在内存中进行比较?
-
我想到了这样的事情。将数据提取到变量中并进行比较。我只是不太确定该怎么做。
-
Oracle 和 SQL Server 数据库之间是否存在允许 Oracle 查询 SQL Server 表或反之亦然的连接?您可能需要与您的 DBA 讨论此问题。
标签: c# sql-server database oracle oracle11g