提供者 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”解决方法

oracle oledb 驱动找不到怎么办

未在本地计算机上注册“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