鑑於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