我有一个链接到另一个数据库的 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: end-of-file on communication channel
但是如果我只是将查询更改为不使用参数,那么它就可以工作
关于如何使用参数来实现此功能有什么想法吗?
编辑
如果我尝试以下操作,则需要进一步调查
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: lost RPC connection to heterogeneous remote agent
我真的很想要一个允许将参数传递到链接数据库的解决方案,但我似乎找不到有关将参数与链接数据库一起使用的任何内容
谢谢
最佳答案
ORA-03113
是一个通用异常,当灾难性事件导致连接断开时抛出。警报日志或跟踪文件中可能有一些附加信息。检查后台转储或诊断目录。
ORA-28511
更为具体。错误消息指向需要调查的特定区域;建议是“检查网络问题和远程主机崩溃。问题可能出在代理软件中。”
所以,这并不是真正的语法问题。这是一个环境(配置/硬件)问题。恐怕您还需要进行更多挖掘。
祝你好运。
关于asp.net - Oracle中Link DB参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063478/