提供者 OraOLEDB.Oracle 未注册
Posted
技术标签:
【中文标题】提供者 OraOLEDB.Oracle 未注册【英文标题】:Provider OraOLEDB.Oracle not registered 【发布时间】:2022-01-15 20:28:37 【问题描述】:我正在尝试将我的数据库与我的 asp.net 网络表单连接,但是当我插入它以尝试连接时,我遇到了这个错误
OleDbConnection con = new OleDbConnection("Provider=OraOLEDB.Oracle;USER ID=C##FABIO;DATA SOURCE=ORCL");
//aggiungi un elemento alla tabella ESAMI
protected void Button1_Click(object sender, EventArgs e)
con.Open();
OleDbCommand cmd = new OleDbCommand("Insert into ESAMI(CODICE_ESAME,NOME_ESAME,ANAGRAFICA_CODICE_FISCALE) VALUES('" + codice_esame_text.Text + "','" + nome_esame_text.Text + "','" + codice_fiscale_text.Text + "') WHERE ANAGRAFICA_CODICE_FISCALE = '" + codice_fiscale_text.Text + "'",con);
cmd.ExecuteNonQuery();
con.Close();
如何添加 oracle 提供者?
【问题讨论】:
请通过这个Thread。这可能对您有帮助。 除了您的连接问题,您不应该使用这些连接来编写您的 SQL 语句。它为SQL Injection 打开了大门,引用了问题和性能下降。使用带有绑定参数的预处理语句。 【参考方案1】:字面意思是OleDB Provider for Oracle 没有注册,可以注册
%windir%\System32\RegSvr32.exe "<path of OraOLEDB11.DLL 64-bit version>"
%windir%\SysWOW64\RegSvr32.exe "<path of OraOLEDB11.DLL 32-bit version>"
但是,这通常不是问题的根本原因。在大多数情况下,根本没有安装 OleDB Provider。裸 Oracle Instant 客户端不包含 Oracle Provider for OLE DB,要么您单独安装,要么您需要在 Oracle Universal Installer 中启用该组件。
您可以从此处下载适用于 OLE DB 的 Oracle Provider:
32-bit Oracle Data Access Components (ODAC) Downloads 64-bit Oracle Data Access Components (ODAC) Downloads请注意,架构,即 32 位与 64 位必须与您的编译器设置匹配,您不能混合使用。人们经常混合使用 32 位和 64 位版本,它们的名称和外观相同。
用于 OLE DB 的 Oracle Provider 的版本(例如 12.2)必须与 Oracle 客户端的版本匹配。您只能安装一个版本的 Oracle Provider for OLE DB(即 32 位和 64 位各一个),这是 Windows COM 体系结构的限制。因此,请小心运行您的安装。
【讨论】:
以上是关于提供者 OraOLEDB.Oracle 未注册的主要内容,如果未能解决你的问题,请参考以下文章
Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法
未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序--问题的处理
visual studio 2008 (ssis连接oracle数据库)未在本地计算机上注册OraOLEDB.Oracle.1
链接服务器“FDMEE_SIMPHONY”的 OLE DB 提供程序“OraOLEDB.Oracle”返回消息“ORA-00903:无效表名”
无法创建链接服务器 "xxx" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的实例。 (Microsoft SQL Server,错误: 7