【问题标题】:Dapper cannot run procedure and return exceptions PLS-00221Dapper 无法运行程序并返回异常 PLS-00221
【发布时间】:2021-07-23 20:32:08
【问题描述】:

我在 Oracle 中有包含流水线功能的包。该功能起作用。但我无法通过 Dapper 运行此程序。

如果我使用下一个代码,我会得到结果。

var hostname = "calculation_workers";
var functionName = "MURR_IMPORT.MURR_TASKS.GET_ALL_SERVICES";
var parameters = new OracleDynamicParameters();
parameters.Add("inHostName", hostname, OracleMappingType.Varchar2, ParameterDirection.Input);
var result = dbConnection.Query<DbHostsMap>("SELECT * FROM MURR_IMPORT.MURR_TASKS.GET_ALL_SERVICES(:inHostName)", 
   parameters, 
   commandType: CommandType.Text);

如果我尝试使用 CommandType.StoredProcedure,则会收到异常 PLS-00221: 'GET_ALL_SERVICES' is not a procedure or undefined

var hostname = "calculation_workers";
var functionName = "MURR_IMPORT.MURR_TASKS.GET_ALL_SERVICES";
var parameters = new OracleDynamicParameters();
parameters.Add("inHostName", hostname, OracleMappingType.Varchar2, ParameterDirection.Input);
//Here I get the exception
var result = dbConnection.Query<DbHostsMap>(functionName, 
   parameters, 
   commandType: CommandType.StoredProcedure);

如何解决 PLS-00221 的问题?

【问题讨论】:

    标签: c# oracle orm dapper


    【解决方案1】:

    你需要用table()包裹它:

    SELECT * 
    FROM table(MURR_IMPORT.MURR_TASKS.GET_ALL_SERVICES(:inHostName))
    

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      相关资源
      最近更新 更多