随笔分类 -  Oracle

SQL进阶
摘要:具体业务中用到的sql。1.这个是查找最近标志为1,且有多条记录的数据。(这个sql查找错误比较有用。) select a.c_ply_no ,count(1) from web_ply_base awhere a.c_latest_mrk='1'group by a.c_ply_nohaving count(1)>1背景count(*) count(1) 两者比较,主要还是要count(1... 阅读全文
posted @ 2009-11-28 18:36 断点 阅读(313) 评论(0) 推荐(0) 编辑
ORACLE的锁机制
摘要:数据库使用锁(lock)来保证任何给定时刻最多只有一个事务在修改给定的一段数据。实质上讲,正是锁机制才使并发控制成为可能。ORACLE的封锁策略: 1、只有当修改时,Oracle在行级上锁定数据,不要把锁定上升到块或表级。 2、Oracle决不会为读取而锁定数据,简单读取不能在数据行上设置锁定。 3、数据的写入器不会阻塞数据读取器。 4、只有当另一个数据写入器已经锁定了某行数据后,才阻塞其... 阅读全文
posted @ 2009-11-28 17:50 断点 阅读(740) 评论(0) 推荐(0) 编辑
SQLException ORA-01502 index VHL_V6.PK_WEB_APP_TGT_OBJ or partition of such index is in unusable state
摘要:今天在选择一条记录进行做删除操作时,碰见index失败的问题,如下:处理失败!错误信息:[SQLException ORA-01502 index VHL_V6.PK_WEB_APP_TGT_OBJ or partition of such index is in unusable state ]在网上查询了下,知道原因,就上数据库查了一下,结果如下:1PK_WEB_APP_TGT_OBJNORM... 阅读全文
posted @ 2009-09-26 21:36 断点 阅读(511) 评论(0) 推荐(0) 编辑
ORACLE用户常用数据字典的查询方法
摘要:1、用户查看当前用户的缺省表空间:SQL>select username,default_tablespace from user_users;查看当前用户的角色:SQL>select * from user_role_privs;查看当前用户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from user_... 阅读全文
posted @ 2009-09-14 17:29 断点 阅读(409) 评论(0) 推荐(0) 编辑
sqlca.sqlcode!=0
摘要:最近看C语言的程序,程序里面带有sql语句,其中就有这么一句:EXEC SQL select upper(nvl(c_grant_dpt_cde,'0')),nvl(C_CTCT_CDE,'0') into :sGrantCde,:sCtctCde from t_department where c_dpt_cde = :sDptCde;if (sqlca.sqlcode!=0) { printf... 阅读全文
posted @ 2009-09-10 19:59 断点 阅读(1634) 评论(0) 推荐(0) 编辑
Oracle中sql解释
摘要:1、SELECT nvl(C_REMARK,chr(0)) into :sRatefrom T_COMM_CODEwhere c_cde = trim(:sText2) and rownum = 1;nvl是个函数,作用是如果第一个参数为空值,则返回第二个参数的值,否则返回第一个参数的值。chr(0)将数字0转化为字符0。2、Y.YJKSBH=X.ZXKSBH(+) AND Y.ZLXMID=X.... 阅读全文
posted @ 2009-06-13 17:46 断点 阅读(314) 评论(0) 推荐(0) 编辑
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
摘要:原因:出现这个问题,可能有人move过表,或者disable 过索引。1、alter table xxxxxx move tablespace xxxxxxx 命令后,索引就会失效。2、alter index index_name unusable,命令使索引失效。解决办法:1、重建索引才是解决这类问题的完全的方法。alter index index_name rebuild (online);2... 阅读全文
posted @ 2009-05-19 19:16 断点 阅读(1857) 评论(1) 推荐(0) 编辑
Oracle中Blob和Clob
摘要:Blob是指二进制大对象也就是英文Binary Large Object的所写;Clob是指大字符对象也就是英文Character Large Object的所写。因此这两个类型都是用来存储大量数据而设计的,其中BLOB是用来存储大量二进制数据的;CLOB用来存储大量文本数据。 在JDBC中有两个接口对应数据库中的BLOB和CLOB类型,java.sql.Blob和java.sql.Clob。和你... 阅读全文
posted @ 2009-05-16 19:26 断点 阅读(1533) 评论(0) 推荐(0) 编辑
ORA-01438: 值大于此列指定的允许精确度
摘要:比如定义为number(4,2),却要插入一个值200.12的话,就会出错啊,原因是number(p,s)的问题。 number(p,s),其中p表示该number的总长度,s为小数位。如果s为负数,则会取相应位数的取整。例如,如果number(4,-3),则数字1234的存储值为1000;如果number(4,-2),则数字1234的存储值为1200。在对数据库表中的字段设定类型时,要注意:NU... 阅读全文
posted @ 2009-05-16 17:31 断点 阅读(11619) 评论(0) 推荐(1) 编辑
Oracle中插入Date数据
摘要:在oracle中建有date类型的字段,插入可以采取如下方法: 如果是小时为:1-12 采取如下格式:yyyy-mm-dd HH:MI:SS insert into test values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS')); 如果是小时为:1-24 采取如下格式:yyyy-mm-dd HH24:MI:SS insert into... 阅读全文
posted @ 2009-05-07 20:14 断点 阅读(567) 评论(0) 推荐(0) 编辑
ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值
摘要:Caused by: java.sql.BatchUpdateException: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值我在系统的一个页面上加载一个.xml文件时,出现了这个错误。 原因: 当插入数据的长度在1000、2000内,就会抛出这样的错误。 解决方法: 思路:将存储的字符串补上空格,让其超过2000的长度即可,但仅限与紧急解决问题。1、首先在.java文件... 阅读全文
posted @ 2009-04-18 13:01 断点 阅读(10314) 评论(0) 推荐(1) 编辑
oracle数据库中文乱码
摘要:今天跟新人安装oracle后,打开数据库查看表里面的数据,发现里面的数据全是“靠”字。这可是以前没有出现过的。因此就查了一下,了解到是注册表的字符级问题。现解决如下: 在注册表里进行修改:开始-->运行里面输入regedit-->我的电脑\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 里NLS_LANG的值以前是:American_America.ZHS16GB... 阅读全文
posted @ 2009-04-09 15:08 断点 阅读(489) 评论(0) 推荐(0) 编辑
TOAD常用快捷键
摘要:现在在企业中,操作oracle数据库的客户端,除了PL/SQL外,使用的较多的就是TOAD了! 为此,我在网上搜索了下,整理了些简单TOAD的使用技巧,现分享给大家。 常用快捷键: F8 调出以前执行的sql命令 F9 执行全部sql Ctrl+t 补全table_name Ctrl+. 补全table_name alt+ 箭头上下 看sql history Ctrl+Enter 直接执行当前s... 阅读全文
posted @ 2009-04-08 20:50 断点 阅读(3331) 评论(0) 推荐(0) 编辑
Oracle数据的导出与导入
摘要:前序:关于Oracle9i数据的导出与导入问题,折腾我好长时间了,尤其是导入。今天在一位同事的指导下,算是终于成功了,为了记住这位同事的帮助,在此仅以“坤”作为记号。 正文: Oracle数据导出: 如果是导出本机的Oracle数据库: exp pcisv62/11@ORCL file="d:\pcisv62081226.dmp" full=y (ORCL为本地数据库监听) 如果是导出... 阅读全文
posted @ 2009-03-04 17:06 断点 阅读(4998) 评论(0) 推荐(0) 编辑
以system身份登陆sql*puls方法
摘要:系统环境:WindowXP。 oracle9i 安装到最后,更改了:sys口令:sys system口令:system 现在需要以system身份登陆sql*puls,方法有二: 第一种方法:.进入SQL*Plus后在弹出对话框中直接点击“确定”, 请输入用户名:sys as sysdba 请输入口令:sys 第二种方法:进入Dos窗口... 阅读全文
posted @ 2009-02-27 14:55 断点 阅读(628) 评论(0) 推荐(0) 编辑
oracle中的 exists 和 in 的效率问题
摘要:有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select * from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1>T2 时,2) 的查询效率高。 exists 用法: 1)句中的“select * from T2 where T1.a=T2.a” 相当于一个关联表查... 阅读全文
posted @ 2009-02-01 17:54 断点 阅读(8963) 评论(1) 推荐(0) 编辑
卸载oracle方法
摘要:在卸载Oracle时删不干净,搞的要重装系统,本人在工作中总结出如下方法,希望对大家有所帮助。 注意:oracle的源程序的路径必须是英文路径,否则安装会出错! 1.以Administrators 身份登陆windows系统。 2.停掉Oracle Service服务。 3.通过Oracle installer 卸载任何orcle产品及组件。 4.删除%ORACLE_base%文档和SY... 阅读全文
posted @ 2008-12-18 12:37 断点 阅读(280) 评论(0) 推荐(0) 编辑