2010-06-13 115 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

相关问题