
数据库
zmdds
这个作者很懒,什么都没留下…
展开
-
解析oracle的rownum
原帖地址:http://www.cnblogs.com/zjrstar/archive/2006/08/31/491090.html.感谢原创作者本人最近在使用oracle的rownum实现分页显示的时候,对rownum做了进一步的分析和研究。现归纳如下,希望能给大家带来收获。 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2转载 2008-09-05 11:24:00 · 318 阅读 · 0 评论 -
Sql 2005 递归查询
Oracle中的递归查询可以依靠增强的sql语句START WITH ...CONNECT BY PRIOR来搞定.sql 2005中不支持该语句,以下示例可以实现递归查询.WITH TREE(xzdm,Prexzdm,lvl,topxzdm) AS ( SELECT xzdm,prexzdm,1,prexzdm as topxzdm FROM xzdm WHERE Prexzdm原创 2009-11-17 15:29:00 · 535 阅读 · 0 评论 -
删除重复数据
delete from kjt_xzdw a where rowid>(select min(rowid) from kjt_xzdw b where a.xzdm=b.xzdm);原创 2009-09-03 10:39:00 · 426 阅读 · 0 评论 -
Mapgis与ArcGIS的装换,Oracle Spatial的相关selsct
今天没时间,贴两个链接 比较相同图元的sql语句.select Objectid 结果集数目多于一个时,运算速度巨慢SELECT A.*FROM temp_tudi_1 A, temp_tudi_1 BWHERE B.Objectid in (select objectid from temp_tudi_1 where objectid =1 or objectid =2) a原创 2009-07-20 21:58:00 · 542 阅读 · 0 评论 -
Oracl数据导出
部分表导出 exp gisdb/gis@orcl file=d:/webgut20080805.dmp tables=(rooms_sp) 全库导出 exp gisdb/gis@orcl file=d:/webgut20080805.dmp原创 2009-04-07 15:20:00 · 470 阅读 · 0 评论 -
oracle两表间导数据语句
insert into ktz_xy(dldm) select tdfldm1.dldm from tdfldm1 order by tdfldm1.id将tdfldm1表中的dldm 列导入ktz_xy表的dldm列.如果是这样加了括号会报错,去掉order by则不会,奇怪insert into ktz_xy(dldm) (select tdfldm1.dldm from tdfl原创 2009-01-14 10:07:00 · 642 阅读 · 0 评论 -
查看oracle被锁对象
一个字不用改,直接执行就可以得到被锁的对象SELECT A.OWNER, A.xzdm, B.XIDUSN, B.XIDSLOT, B.XIDSQN, B.SESSION_I原创 2009-01-12 17:42:00 · 494 阅读 · 0 评论 -
在Oracle中使用关键字
虽然不提倡使用关键字来做列名,但是如果非要使用怎么办?给关键字列名加上双引号即可alter table HISTORY rename column OPTIME to date;上面的sql语句执行后会报错,改为alter table HISTORY rename column OPTIME to "date";可以执行,并将列名改为date,查询时列名也要记得加双引号.原创 2008-11-05 11:11:00 · 889 阅读 · 0 评论 -
关于oracle分页中的rownum
前几天做分页都是很简单的select * ,用的语句是select * from md_archive t where (rowid not in(select rowid from md_archive where rownum今天要用到条件查询了.测试了下上述语句不能用条件查询,或者说是比较复杂(因为 not in的存在).以下两个语句都可以插入条件,但是问题随之而来.1.SELE原创 2008-10-14 11:07:00 · 633 阅读 · 0 评论 -
oracle数据库insert后获取insert数据的自增id值
前段时间用的是select last_number-1 from user_sequences where sequence_name=序列名.这个方法是有隐患的.在有大量并发访问做insert操作的时候可能会出现取错值的现象.今天查到一个新的方法.在insert后使用select 序列名.CURRVAL from dual也可以拿到数值.而且这个CURRVAL 只在insert后的原创 2008-10-20 21:23:00 · 7364 阅读 · 1 评论 -
为什么大于32k的数据就不行?
通过一个存储过程上送文件到BLOB字段.原来测试都没有问题,今天换了几个不同类型的文件.问题就浮现出来了:"ORA-01460: 转换请求无法实现或不合理".上网查了查,原因就是使用存储过程直接传入BLOB字段是有大小限制的,这个限制就是32k.解决方法是可以调数据库参数.或者用dataset来处理.原来也做过文件上传BLOB.用的就是dataset,根本没有这个问题.测试的时候100多m的文件都原创 2008-10-20 16:17:00 · 1521 阅读 · 0 评论 -
尽量不要拼凑Sql语句,用参数来防注入
如果是类似"select * from user where uid="+uid +" and pwd="+pwd 很容易出问题 使用 SQLParamenter 把你的SQL语句写成 类似存储过程 select * from user where uid=@uid and p原创 2009-11-26 23:12:00 · 744 阅读 · 0 评论