Выполнение функции пакета Oracle с помощью Dapper - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь выполнить функцию пакета Oracle, используя Dapper, но получаю сообщение об ошибке 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();

Я получаю сообщение об ошибке выше. Есть идеи?

1 Ответ

0 голосов
/ 12 июля 2018

У меня было то же сообщение об ошибке, и оно исчезло после установки пакета Nuget Oracle.ManagedDataAccess от Oracle.

Мне не совсем понятно, что делает ваша функция. Это рекурсивно? В любом случае, когда вы используете параметры, вы должны прочитать эту статью: колл-оракул-магазин-процедура-с щеголеватым . который основан на классе OracleDynamicParameters .

Мне это тоже показалось интересным, но я не пробовал: пакет Nuget Dapper.Oracle .

...