鉴于Oracle存储过程:传递一个ColdFusion阵列到甲骨文合集为绑定变量
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]
为什么不能变量为清单? –
我知道可以通过对数组进行字符串化,然后在另一端对其进行解析,但是接下来您有两次转换,并且必须修改存储过程。但主要是因为这不是问题的问题 - 它专门将数组传递给集合 - 可以[用Java完成](http://stackoverflow.com/a/37161584/1509264),但我有在ColdFusion中找不到简单/原生的方式。 – MT0