【发布时间】:2011-02-18 16:56:38
【问题描述】:
目前我有一个从 MSSQL 数据库返回数据集的 sql 调用,我想从该数据中获取一列,并根据 ORACLE 数据库中的该列返回 ID。我可以一次执行此操作,但这需要多次调用,我想知道是否可以通过一次调用来完成。
String sql=String.Format(@"Select DIST_NO
FROM DISTRICT
WHERE DIST_DESC = '{0}'", row.Table.Rows[0]["Op_Centre"].ToString());
上面是我用来一次返回一个 ID 的字符串。我知道 {0} 可用于将您的值格式化为字符串,也许有一种方法可以使用数据表来做到这一点。
还要在 where 子句中使用多个值:
String sql=String.Format(@"Select DIST_NO
FROM DISTRICT
WHERE DIST_DESC in ('{0}')", row.Table.Rows[0] ["Op_Centre"].ToString());
虽然我意识到所有这些都可以完成,但我想知道是否有一种简单的方法可以在一次调用中将其全部添加到 sql 字符串中。
在写这篇文章时,我意识到我可以将字符串分成多个部分,然后只需将每一行值添加到“WHERE DIST_DESC IN (”子句中的 SQL 字符串...
我仍然很想知道是否有其他方法,因为其他人可能会遇到这个问题,如果我开发了一个解决方案,我会发布一个解决方案。
提前致谢。
【问题讨论】:
-
不是你问的,这也是为什么这是一个评论,但是:不要以为你的MSSQL数据库可以设置看到Oracle数据库,可以吗?您可以使用 SQL Server 上的 Oracle/ODBC 驱动程序将 Oracle 数据库添加为链接服务器,并使用链接服务器或 OpenQuery 语法直接将其加入。然后您可以完全在 MSSQL 中编写查询并在 SQL Server 上调用它,SQL Server 将处理与 Oracle 的对话并将数据拖回......