程序运⾏过程中遇到“ORA-03114:notconnectedtoORACLE”的问题解决
c#,winform程序,数据批量⼊oracle库时⽤到DataAdaper的.FillSchema函数,如:da.FillSchema(dt2, SchemaType.Mapped);
程序运⾏⼀段时间后在此出现中断,错误提⽰:ORA-03114: not connected to ORACLE。
经从⽹上查相关解决⽅案,有说重启应⽤程序的;有说这是此函数本⾝的⼀个bug,需要添加什么微软官⽅所说的解决⽅案的。
经本⼈试验,重启应⽤程序是会变好。但是运⾏过程中还会难免出现上⾯的错误,这时候就还需要重启程序,所以并不是长久之计。
后经试验,只在数据库服务⼀停,上述问题必定会出现。也就是说只要出现过数据库连接断开的情况(⽐如数据库服务器断电导致⽹络断开,从⽽程序中连接数据库的地⽅中
断),那么即使后⾯数据库与程序连接⼜可以恢复正常,那么此处还是会报ORA-03114: not connected to ORACLE的错误。说明数据库连接仍不可⽤。
⽽且经查DataAdapter.FillSchema()函数官⽅⽂档:
The connection object associated with the SelectCommand must be valid,but it does not need to be open. If the connection is closed before FillSchema is called, it is opened to retrieve data and then clo 说明此函数运⾏时,必须保证数据库连接可⽤,⽽且函数本⾝⾃动会打开连接,⽤然后再关闭。如果本⾝就是打开状态,那仍会保持打开状态不变。
经调试试验,改为如下⽅案:
try
{
da.FillSchema(dt2, SchemaType.Mapped);
}
catch (OracleException ex)
{
try{
如何连接oracle数据库
cnnOracle = new OracleConnection(strCnnOracle);//strCnnOracle为数据库连接字符串。
cnnOracle.Open();
}
catch(OracleException ex2)
{
return  ex2.Message;
}
}
也就是说,增加了try catch,在catch中重新实例化连接,并将连接打开即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。