oracle - 使用 Dapper 执行 Oracle 包的功能
问题描述
我正在尝试使用 Dapper 执行 am Oracle 包的功能,但收到 ORA-06550 错误消息:
ORA-06550: line 1, column 7:PLS-00221: 'MYFUNC' is not a procedure or is undefinedORA-06550: line 1, column 7:PL/SQL: Statement ignored
我能够在 Oracle 的 SQL Developer 中成功执行该函数:
DECLARE
PARAM1 NUMBER;
PARAM2 NUMBER;
v_Return VARCHAR2(200);
BEGIN
PARAM1 := 1;
PARAM2 := 2;
v_Return := MYPACKAGE.MYFUNC(
PARAM1 => PARAM1,
PARAM2 => PARAM2
);
/* Legacy output:
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
*/
:v_Return := v_Return;
--rollback;
END;
但是当尝试使用 dapper 做同样的事情时:
var storedProc = @"MYPACKAGE.MYFUNC";
return _connection.Query<string>(storedProc, new { PARAM1 = 1, PARAM2 = 2 }, commandType: CommandType.StoredProcedure).SingleOrDefault();
我收到上面的错误消息。有任何想法吗?
解决方案
我有同样的错误消息,它在安装 Oracle 的 Nuget 包Oracle.ManagedDataAccess后消失了。
我并不完全清楚你的功能是做什么的。它是递归的吗?无论如何,当您使用 out 参数时,您应该阅读这篇文章: call-oracle-store-procedure-with-dapper。它基于OracleDynamicParameters类。
我也觉得这很有趣,但我还没有尝试过:Nuget 包Dapper.Oracle。
推荐阅读
- javascript - 无法使用 NodeJs 从 MongoDb 获取 Json 格式的数据
- java - 计算按下电源按钮的次数
- mysql - SQL中没有聚合函数的行到列转换
- node.js - Nest.JS 部署到 Heroku
- javascript - 正则表达式匹配,直到包括或不包括
- odoo-11 - 如何在odoo11中从网站打印报告?
- java - 从 Junit 4 迁移到 Junit 5 - 测试用例被跳过
- php - PrestaShop 1.7 中类型颜色表单的背景问题
- python - 在 python 中展平 Json 文件的问题
- java - 如何将数据从 recyclerview 适配器传递或发送到片段