Вызов процедуры Oracle с ошибкой

Я вызываю процедуру, написанную на Oracle 11g из ColdFusion2016. Я безуспешно отлаживаю со вчерашнего дня, небольшая помощь приветствуется. Я не знаю, вызвана ли эта ошибка моей процедурой оракула или Coldfusion, поэтому я провел некоторый тест, вызвав процедуру у моего разработчика оракула sql:

variable x refcursor;
variable y varchar2(200);
variable z varchar2(200);
exec um_check_alloc_bene_loadv2(v_session_id => 1, v_summary => :y, v_continue => :z, cv_1 => :x );
print x;
print y;
print z;

Это даст мне некоторый результат. Итак, я предполагаю, что ошибка должна быть связана с вызовом ColdFusion. Но я не вижу, что не так с моим вызовом:

        <cfstoredproc procedure="um_check_alloc_bene_loadV2" datasource="#Trim(TESTDB)#">
          <cfprocparam type="in" cfsqltype="cf_SQL_INTEGER" variable="session_id" value="#Trim(max_session_id)#" MAXLENGTH="4">
          <cfprocparam type="out" cfsqltype="CF_SQL_VARCHAR" variable="summary" value="">
          <cfprocparam type="out" cfsqltype="CF_SQL_VARCHAR" variable="continue" value="">
        <cfprocresult name="errors" resultset="1">
        </cfstoredproc>

Начало процедуры выглядит так:

create or replace PROCEDURE um_check_alloc_bene_loadV2 (
  v_session_id IN     NUMBER DEFAULT NULL,
  v_summary       OUT VARCHAR2                                /* DEFAULT ' '*/
                          ,
  v_continue      OUT VARCHAR2                                /* DEFAULT ' '*/
                          ,
  cv_1         IN OUT SYS_REFCURSOR)
AS
  v_rowcount   NUMBER (10, 0);
  v_errorcount NUMBER (5, 0);
BEGIN
  -- clean errors
  UPDATE um_allocation_beneficiary_ldV2
     SET errors = ' '
   WHERE session_id = v_session_id;

и когда я вызываю этот процесс из моего ColdFusion, я получаю эту ошибку, которую не могу понять:

Error Executing Database Query.
[Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 
'UM_CHECK_ALLOC_BENE_LOADV2' ORA-06550: line 1, column 7: PL/SQL: Statement 
ignored
........................................
138 :             <cfprocparam type="out" cfsqltype="CF_SQL_VARCHAR" 
variable="summary" value="">
139 :             <cfprocparam type="out" cfsqltype="CF_SQL_VARCHAR" 
variable="continue" value="">
140 :           <cfprocresult name="errors" resultset="1">
141 :           </cfstoredproc>
142 :           <table align="center" width="90%">

SQLSTATE      HY000
DATASOURCE    TESTDB
VENDORERRORCODE   6550
SQL   {call um_check_alloc_bene_loadV2( (param 1) , (param 2) , (param 3) )}
Resources:

person MGL    schedule 28.02.2018    source источник
comment
Процедура имеет 4 аргумента, а вы передаете только 3.   -  person âńōŋŷXmoůŜ    schedule 28.02.2018
comment
Спасибо, что указали на это! Я этого не видел. Как пометить этот вопрос как отвеченный   -  person MGL    schedule 28.02.2018
comment
Попросите @anonyXmous опубликовать свой комментарий в качестве ответа, а затем нажмите на зеленую галочку рядом с ним.   -  person SOS    schedule 12.03.2018
comment
Кстати, хотя это и излишне, добавление общего тега coldfusion привлекает больше внимания пользователей CF. Хотя спасибо, что включили свои версии в теги :) Многие забывают это сделать.   -  person SOS    schedule 22.03.2018


Ответы (1)


Ваша процедура ожидает четыре параметра, как показано ниже, но вы передаете только три параметра. Спасибо.

PROCEDURE um_check_alloc_bene_loadV2 (
  v_session_id ,   
  v_summary    ,   
  v_continue   ,   
  cv_1         )
person âńōŋŷXmoůŜ    schedule 12.03.2018