You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决调用Oracle .NET存储过程报ORA-02019远程数据库连接描述未找到错误

ORA-02019 Oracle CLR存储过程调用错误解决方案

问题根因

该错误是Oracle调用.NET CLR存储过程时,无法找到DBMS_CLR依赖的专用数据库链接导致,按以下步骤逐一排查修复:

修复步骤

  • 步骤1:开启Oracle CLR集成权限
    首先用SYS用户登录数据库,执行以下命令开启CLR功能,并且给部署存储过程的schema授权:
    EXEC DBMS_CLR.ENABLE;
    GRANT EXECUTE ON SYS.DBMS_CLR TO *你的存储过程所属SCHEMA名*;
    
  • 步骤2:创建CLR专用数据库链接
    DBMS_CLR默认使用名为CLRExtProc的数据库链接调用外部CLR程序,执行以下命令创建该链接:
    CREATE PUBLIC DATABASE LINK CLRExtProc 
    CONNECT TO *你的存储过程所属SCHEMA名* 
    IDENTIFIED BY *该SCHEMA的密码* 
    USING 'ORACLR_CONNECTION_DATA';
    
    若不需要公共访问权限,也可以创建当前schema私有的数据库链接。
  • 步骤3:确认TNS配置路径正确
    你当前的TNS配置内容没有问题,但需要确认ORACLR_CONNECTION_DATA条目是保存在Oracle数据库服务读取的配置文件中,路径为:
    C:\app\Administrator\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
    
    不要放到第三方Oracle客户端、ODAC的tnsnames.ora文件中,否则数据库服务无法读取。
  • 步骤4:验证数据库链接可用性
    执行以下测试语句,确认数据库链接可以正常访问:
    SELECT * FROM dual@CLRExtProc;
    
    正常执行会返回结果X,说明链接配置生效。
  • 步骤5:重启关联服务
    所有配置修改完成后,按顺序重启服务:
    1. 停止OraClrAgnt服务
    2. 执行lsnrctl stop停止监听
    3. 执行lsnrctl start启动监听
    4. 启动OraClrAgnt服务
  • 步骤6:重新调用存储过程
    执行你的调用语句验证修复效果:
    select STOREDPROCEDURE1 from dual;
    

额外排查点

如果以上步骤执行后仍然报错,可以检查:

  • Listener配置中CLRExtProc对应的ORACLE_HOME路径是否与实际安装路径一致,oraclr18.dll是否存在于%ORACLE_HOME%\bin目录下
  • 部署的.NET程序集目标框架是否与Oracle 18c支持的CLR版本兼容,Oracle 18c仅支持.NET Framework 4.x版本,不要使用.NET Core/.NET 5+

内容的提问来源于stack exchange,提问作者Thomas Carlton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 19:36:03