Я вызываю процедуру, написанную на 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:
coldfusionпривлекает больше внимания пользователей CF. Хотя спасибо, что включили свои версии в теги :) Многие забывают это сделать. - person SOS   schedule 22.03.2018