大家一定进来帮忙解决这个SQL语句
又一个表 table a 字段 oid(number),text(varchar2);
我有一个varray存放Number类型的数组 array
我想从表a 中选择出oid在array中的记录
select text from a where oid in array?????
问题点数:50、回复次数:20Top
1 楼panther_totem(青争岁月)回复于 2001-12-15 11:28:05 得分 0
学习Top
2 楼N_chow(Yukon)回复于 2001-12-15 11:32:12 得分 0
你這個Array應該是在前端吧?
假若你的前端是用VB好了,(其它原理也一樣)
Dim p() As String
Dim strSql As String
ReDim p(2)
p(0) = "1"
p(1) = "120"
p(2) = "300"
strSql = " Select [text] from a where oid IN (" & Join(p, ",") & ")"
然後再把這條SQL送出去執行。Top
3 楼fake_wolf(狼)回复于 2001-12-15 11:34:45 得分 0
不是的,就是一个SQL语句Top
4 楼N_chow(Yukon)回复于 2001-12-15 11:41:33 得分 0
用的是什麼DBMS?竟然有數組?Top
5 楼Philip1314(勇敢的心)回复于 2001-12-15 11:51:49 得分 0
有一个办法,将数组放在一个临时表里面
select text from a where oid in temptableTop
6 楼fake_wolf(狼)回复于 2001-12-15 23:19:06 得分 0
哥们,在我的系统里,经常要用到这种查询,如果每次查询都用到
临时表,很难维护Top
7 楼paul_chow(paul)回复于 2001-12-16 00:33:11 得分 0
用游标试试吧!Top
8 楼fake_wolf(狼)回复于 2001-12-16 03:29:45 得分 0
to : paul_chow
是否能说的详细一点Top
9 楼liujianjun_(流星尔)回复于 2001-12-16 08:19:38 得分 0
用的是什么数据库Top
10 楼fake_wolf(狼)回复于 2001-12-16 09:58:34 得分 0
oracle数据库Top
11 楼myand(myand)回复于 2001-12-16 22:04:52 得分 50
请看下贴的回复
http://www.csdn.net/Expert/topic/422/422790.shtmTop
12 楼fake_wolf(狼)回复于 2001-12-16 23:16:58 得分 0
正在消化你的思路Top
13 楼fake_wolf(狼)回复于 2001-12-18 13:47:34 得分 0
to myrand :我试过了,的确比原来的快了很多,
但从应用的角度上讲,仍然较慢。比如说,在从一个6000
个OID的集合里选择,大约需要30秒,这显然不是很理想。
但这方法比原来好多了,现,奉送上50分。可收到否。
以后还要向你多请教。
多了,用一维数组更合适。Top
14 楼fake_wolf(狼)回复于 2001-12-18 13:55:49 得分 0
to myrand :我试过了,的确比原来的快了很多,
但从应用的角度上讲,仍然较慢。比如说,在从一个6000
个OID的集合里选择,大约需要30秒,这显然不是很理想。
但这方法比原来好多了,现,奉送上50分。可收到否。
以后还要向你多请教。
多了,用一维数组更合适。Top
15 楼progame(www.progame.org)回复于 2001-12-18 14:18:22 得分 0
加上分隔符,写到临时表
如果oracle最大字符限制的话
就估算一下,写多条记录
然后进行连接查询,不知效果如何Top
16 楼progame(www.progame.org)回复于 2001-12-18 14:21:21 得分 0
6000个oid,写30条记录,你做一下测试吧
临时表只要一个字段,格式为"|oid1|0id2|。。。。"
不知会怎么样,仅供参考Top
17 楼progame(www.progame.org)回复于 2001-12-18 14:23:35 得分 0
如果你的table记录数在十万数量级
普通计算机,完成上述过程应该只要几秒吧Top
18 楼fake_wolf(狼)回复于 2001-12-19 23:11:47 得分 0
由于某种原因,不能使用临时表Top
19 楼progame(www.progame.org)回复于 2001-12-20 00:05:35 得分 0
由于某种原因,完全可以做一个表
为什么一定要临时表,唉!Top
20 楼progame(www.progame.org)回复于 2001-12-20 00:06:03 得分 0
不可理喻Top




