2010-06-13 114 views
1

我正在尋找寫一個Oracle存儲過程,我將傳入(從ColdFusion)一個結構數組並循環遍歷每次迭代以插入塊和塊在數據庫結構中,將結構數組傳遞給Oracle存儲過程(CFMX)

我以前沒有寫過這種程序/包。我打算做一個sp /軟件包,類似於第二次回覆此主題中描繪的內容:How to pass a array of object to oracle stored procedure

假設我這樣做,我該如何從ColdFusion(我正在使用MX)調用該過程並通過我的數組?據我所知,CF_SQL_Types沒有任何意義。

+1

CF - >通過XML的SQL Server是有意義的,不確定它是否適用於Oracle。是的,CF_SQL_Types沒有任何意義。如果這對你至關重要,你可以用Java構建它,讓CF調用負責調用存儲過程的Java方法。 – Henry 2010-06-13 18:42:23

+0

cfsqltype =「cf_sql_longvarchar」適用於作爲字符串傳遞的XML,而不是CF XML類型。這也適用於Oracle。 – 2012-04-16 22:02:27

+0

您可以使用Java傳遞數組(請參閱此處的答案)(http://stackoverflow.com/a/33160309/1509264)),如果將它與[此處的代碼片段](http://www.justskins。 com/forums/stored-procedures-jdbc-116480.html),那麼它應該可以在ColdFusion中實現 - 但是我還沒有研究如何使用ColdFusion的數據源,或者是否可以使用任何內置的功能來做到這一點。 – MT0 2015-10-20 08:15:08

回答

1

我將任何數據類型的數組傳遞給Oracle SP的唯一方法是使用OCI接口和集合。如果有一種方法可以直接使用Pro * C,我還沒有找到它。

OCI是一個更詳細的界面。這裏是基礎文檔。

http://download-uk.oracle.com/docs/cd/B14117_01/appdev.101/b10779/oci11oty.htm#421737

+0

鏈接顯示中斷。 – MT0 2015-10-19 11:38:07

+0

[Internet Archive link here](http://web.archive.org/web/20090820020421/http://download-uk.oracle.com/docs/cd/B14117_01/appdev.101/b10779/oci11oty.htm) - 但是鏈接的頁面是C的,看起來與ColdFusion無關。 – MT0 2015-10-19 11:43:32

+0

是的。這就是Pro * C的功能。 C.據我所知,你不能像問題中所描述的那樣使用coldFusion來傳遞數組。 ColdFusion支持OCI接口 - 我相信C調用。 – 2015-10-20 02:46:58

0

代替結構數組的,我建議你只是將數據轉換爲XML,並通過爲Oracle。

+0

爲何選擇投票?這是一種有效的技術。 – 2012-04-16 22:02:12

相關問題