Учитывая хранимую процедуру Oracle:
CREATE TYPE stringlist AS TABLE OF VARCHAR2(100);
/
CREATE PROCEDURE test_proc(
list IN stringlist,
output OUT VARCHAR2
)
AS
BEGIN
IF list IS NULL OR list IS EMPTY THEN
RETURN;
END IF;
output := list(1);
FOR i IN 2 .. list.COUNT LOOP
output := output || ',' || list(i);
END LOOP;
END;
/
Как я могу вызвать это из ColdFusion?
<cfscript>
arr = [ 'A', 'B', 'C' ];
sp = new StoredProc(
dataSource = "orcl",
procedure = "test_proc",
result = "NA",
parameters = [
{ cfsqltype = "CF_SQL_ARRAY", type="in", value = arr },
{ cfsqltype = "CF_SQL_VARCHAR", type="out", variable = "out" }
]
).execute();
// WriteDump( sp.getProcOutVariables().out );
</cfscript>
Не удается с:
Error Executing Database Query
Fail to convert to internal representation: [A, B, C]
try/finally
, чтобы обрабатывать закрытие всего (блокcatch
не нужен, если только вы не хотите обрабатывать исключение встроенно, а не посредством обычной обработки исключений CF). 13.05.2016Missing IN or OUT parameter at index:: 2
. Это произошло вstatement.executeQuery();
. Я не вижу никаких очевидных ошибок, поэтому я не совсем уверен, почему это происходит. 26.03.2018