2011-03-29 46 views
0

我找不到证据链接了一个问题:如果 节省oracle.sql.ARRAY在构造确保oracle.sql.ARRAY保存传递元素的顺序?

public ARRAY(oracle.sql.ArrayDescriptor arrayDescriptor, java.sql.Connection connection, java.lang.Object o) throws java.sql.SQLException 

当对象O实际上是元素的数组传递的元素的顺序。你能帮我吗?!

+0

什么是证明链接?你真正的问题是什么? – jzd 2011-03-29 11:19:28

+0

证明链接是通过API创建者编写的(或者可能是做了一些测试来验证语句的人)的网页链接,这种方式(SELECT column_value AS id FROM TABLE(CAST(?AS ids_tab)))绑定oracle.sql.ARRAY保存第三个参数(即Object o)中构造函数中传递的数组元素的序列。 Fex:如果我传入Object o:[1,2,3,4]数组将以相同的顺序在SQL中绑定,因此在select中我将有:1,2,3,4。对不起,如果它以前不清楚。 – pls 2011-03-29 11:42:09

+0

是否存在明智的原因_不保存元素的顺序?你怎么能使用这样的API?/*另外:'bind'的过去式是'bound'。 * / – 9000 2011-03-29 12:27:32

回答

0

都会响起的例子在您的评论:

SELECT column_value AS id FROM TABLE (CAST (? AS ids_tab)) 

在SQL中,一个不应该假设一个行源将在任何特定的顺序由ORDER BY子句中返回,除非特殊。即使ARRAY对象按照它们最初给出的顺序存储项目(我期望是这种情况),但没有规则要求SQL引擎必须按照该顺序检索它们。

不幸的是,由于该数组没有键值,因此没有ORDER BY,您可以使用它来强制其元素将按原始顺序返回。