C代码中检查是否存在Oracle

Brightzliu 2011-05-02 03:20:06

在C代码中,若有n个int类型的数, 想检查这n个数是否存在于Oracle某个表中的某个字段中。如何实现,效率最高呢?

如果检查一个数,去就DB执行一次SQL语句,效率太低了。所以想知道有没有其他更好的方法。
...全文
107 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Brightzliu 2012-09-06
  • 打赏
  • 举报
回复
如果记录有千万条呢?把所有数据放在申请的空间里不太合适吧?
kingwinerscxp 2011-05-07
  • 打赏
  • 举报
回复
1、count下 oracle table有多少条记录,然后申请空间
2、写一个游标,把所有数据放在申请的空间里
3、写一公共函数用二分、冒泡、堆等算法实现查找。
Brightzliu 2011-05-03
  • 打赏
  • 举报
回复
大家帮忙看看啊,现在有点blocked了
Brightzliu 2011-05-02
  • 打赏
  • 举报
回复
这N个数,每一次只能检查一次。

算法类似于:
get iCheck;
while(iCheck++ < 2^32-1)
{
if(iCheck exist in the oracle table)
break;
else
do some action
}

2,3楼的好像效率上太低了吧。得注意数据范围

我在想是不是能先把DB的数据读出来放在内存,然后再进行比较。
想用位操作的方法,但是没有什么思路。。

304的的哥 2011-05-02
  • 打赏
  • 举报
回复

SQL> with t as(
2 select 1 id,'james,tom,scott,102,a' name from dual union all
3 select 3,'bbc,cnn,tvb,cctv' from dual union all
4 select 4,'beijing,shanghai,guangzhou,dalian' from dual)
5 select *
6 from t
7 where instr(name,'tvb,cctv')>0
8 or instr(name,'beijing')>0;

ID NAME
---------- ---------------------------------
3 bbc,cnn,tvb,cctv
4 beijing,shanghai,guangzhou,dalian
304的的哥 2011-05-02
  • 打赏
  • 举报
回复

--instr()函数,检查字段tb_col中是否含有n_int:
select tb_col
from table_name
where instr(tb_col,n_int)>0

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧