【发布时间】:2011-10-27 04:02:26
【问题描述】:
我有这个链接到另一个数据库的 Oracle 查询,但它似乎不接受我传递给查询的参数
这是我的代码
cmd.CommandText = "SELECT * FROM table1@dev tb1 join table2 tb2 on tb1.id = tb2.id WHERE tb1.id = :id"
cmd.CommandType = CommandType.Text
cmd.BindByName = True
cmd.Parameters.Add(New OracleParameter("id", id))
执行此操作时出现此错误
ORA-03113:通信通道上的文件结束
但是,如果我只是将查询更改为不使用参数,那么它就可以工作
关于如何使用参数实现此功能的任何想法?
编辑
如果我尝试以下方法,将进一步调查
cmd.CommandText = "SELECT * FROM table1@dev tb1 WHERE tb1.id = :id"
cmd.CommandType = CommandType.Text
cmd.BindByName = True
cmd.Parameters.Add(New OracleParameter("id", id))
我得到一个不同的错误
ORA-28511:与异构远程代理的 RPC 连接丢失
我真的很想要一个允许将参数传递给链接数据库的解决方案,但我似乎找不到任何关于将参数与链接数据库一起使用的信息
谢谢
【问题讨论】:
-
您好,这看起来不像是查询参数问题,而是 DBLink 配置问题,看起来您正在使用 DBLink 到 Oracle 以外的数据库,是这样吗?请添加您的 tnsnames.ora 和 DBLink 创建脚本。另一方面,如果没有 where 条件,查询是否有效?
标签: asp.net sql sql-server oracle parameters