我收到错误ORA-03111在不同服务器上从oracle 11g更改为oracle 10g R1后,通信通道收到了中断。
我使用DotNet framework 4.5。
我有谷歌,但没有找到任何解决方案。
答案 0 :(得分:4)
就我而言(在connection.Open()
上获得例外)问题是Oracle服务器的版本太旧而无法使用托管提供商。
根据:https://community.oracle.com/thread/2528641
ODP.NET,托管驱动程序支持连接到Oracle DB Server 10.2 或更高。它不支持DB 10.1。
答案 1 :(得分:2)
在我的情况下,原因是NVL函数的输入返回了多行 - 下面的blabla子查询:
PROCEDURE my_procedure(c_my_cursor OUT SYS_REFCURSOR) IS
p_my_cursor SYS_REFCURSOR;
BEGIN
OPEN p_my_cursor FOR
select nvl((select blabla), 0) my_column from my_table;
c_my_cursor := p_my_cursor;
END smiley_alle_jurenheder;
有趣的是,在SQL Developer中直接运行查询时,会返回正确的错误代码 - “ORA-01427:单行子查询返回多行”。
答案 2 :(得分:0)
我的问题是数据库上缺少列。它是在另一个环境中创建的。 很难找到真正的问题,因为此错误不会告诉我们任何事情。
在其他计算机上调试时,出现了真正的问题。
希望这对某人有所帮助。
答案 3 :(得分:0)
由于这是搜索此错误时Google的第一个匹配项,因此,我还要添加解决方案。这个错误似乎是由于各种原因而出现的,这使得进行故障排除真的很困难。
我在构建同时在MSSQL和Oracle上运行的应用程序时遇到了问题。启动后,它将创建一个简单表。为防止错误,将删除任何现有表。这种多行,多命令脚本可在MSSQL上正常运行,但与Oracle等效的脚本始终返回此错误。
当我一一运行命令(拖放,创建表,创建序列)时,终于解决了。另外,请注意要使用分号(;),因为将其留在DDL语句中还会导致ORA-03111错误。
回想起来,我知道一次运行多个命令在Oracle中是很麻烦的,但是对于那些不是以Oracle神秘方式启动的人来说,这个错误是毫无用处的。
答案 4 :(得分:-1)
就我而言,Oracle不喜欢此查询中的参数。
window.requestAnimationframe()
将其更改为:
select 0 AS id, object_name name from user_objects where object_type in(:table,:view)
它有效。
默认情况下,我的ORM强制查询使用参数,
典型的Oracle怪异...