
Oracle
追赶的蜗牛
一个程序就是一个世界。。。
展开
-
PL/SQL Developer 与tnsnames.ora
PL/SQL Developer 是一款流行的oracle开发与管理的IDE.在登录PL/SQL Developer时所选择的数据库依赖于tnsnames.ora文件中的信息。如果我们安装了多个oracle的客户端,到底PL/SQL Developer使用那个客户端下的tnsnames.ora呢? 这个可以在PL/SQL Developer-->帮助-->支持信息-->转载 2013-03-07 16:58:05 · 728 阅读 · 0 评论 -
关于SQL语句中日期的处理to_date()的应用
1.更新最近5天的数据if (session == null || !session.isOpen()) { session = getSession(); temp = true; } session .createSQLQuery( "update t_data1 set by3=0 where enter_Type!='X'原创 2013-08-09 17:06:31 · 8241 阅读 · 0 评论 -
同一时间范围内并发数统计
酒店系统的相关问题:统计每天在同一时间段内服务房间最多的服务生。分析:当一个房间的服务开始之后,只要第2个房间的服务开始时间小于(早于)或者等于第1个房间的开始时间,并且结束时间大于(晚于)第1个房间的开始时间的,就说明存在重叠部分。首先查出同一时间范围内的:SELECT * FROM waiters a,waiters bwhere a.waiter_nam原创 2013-12-08 02:05:31 · 2835 阅读 · 0 评论 -
同一期间(日期或时间)内表中是否存在数据的处理
针对上一篇写的同一时间范围内并发数统计我发现我们系统也存在类似的问题的处理,为了对比学习,先将总结如下: 我们项目中主要为了筛选同一期间(日期或时间)内,某张表中是否存在了数据,如果不存在,则可以插入改变,否则不可插入。。。具体的java代码就不写了,写主要的逻辑。 public void getData(String beginDate,Strin原创 2013-12-11 22:42:09 · 917 阅读 · 0 评论 -
COUNT(*)与COUNT(某个字段)的区别,及count(null)和count(distinct 某字段)的用法
由于Oracle在count()的时候,并不计算null(空值)部分,所以和空值结合起来进行统计的时候还是有一些意思。 count这个函数应用的太频繁,有必要深究一番。 测试表格及其数据: SQL> desc student; Name Type Nullable Default Comments转载 2013-12-11 23:15:52 · 8416 阅读 · 0 评论 -
统计每组中最初测量值和最末测量值,并求差
一直以为对SQL中group by 语句都有畏惧感,主要是用的太少,最近同学让我帮忙写个sql,竟然当时没写出来,挺丢人的,都工作那么就了。现在我开始认真想了下,总结如下问题及sql语句: 问题是这样的: 如上图, 统计每个点(或人)中最出测量值和最末测量值,并求差。效果如下:首先建表(随便拿以前的表来改的),字段如下:其中room_id 为主原创 2013-12-07 22:21:54 · 1002 阅读 · 0 评论 -
Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果。
我们在对Oracle数据库进行操作时,有时会在查询完结果后想要对其中的某些数据进行操作,当我们点击编辑(一个锁标志)是,会提示我们上述问题中的错误:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果。按照错误提示的信息我们可以采用两种解决办法:解决办法1:在查询语句后面写上for update,如:select * from 表名 for updat转载 2013-12-19 09:52:22 · 3338 阅读 · 0 评论 -
Oracle 索引及索引失效的原因
Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时候却适得其反。例如一张表中有上百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这可能是 oracle 索引失效造成的。oracle 索引有一些限制条件,如果你违反了这些索引限制条件,那么即使你已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差转载 2014-02-24 23:21:19 · 1404 阅读 · 0 评论 -
Oracle按日/周/月统计语句--GROUP BY TO_CHAR(T.MODIFIEDTIME,'YYYY-MM')
Oracle按月统计语句--创建表 TestCTEATE TABLE TEST(ID NUMBER NOT NULL,MODIFIEDTIME DATE NOT NULL)--按月统计SELECT TO_CHAR(T.MODIFIEDTIME,'YYYY-MM') TIME,COUNT(*) COUNTFROM TEST T w转载 2014-02-12 15:59:32 · 12495 阅读 · 0 评论 -
事物处理机制---乐观锁(version详细使用)和悲观锁
下面先就乐观锁与悲观锁的概念及基本用法做下介绍,因为网上的已经比较详细,就直接摘抄了 锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机 制来保证这些数据在某个转载 2014-09-16 23:01:42 · 9459 阅读 · 0 评论 -
group by 的理解
SQL语法的规定,用了group by,则select之后的字段除了聚集函数外都必须出现在group by中,你可以少于group by中的字段,但不能包含group by中没有的字段select to_char(tp.apply_date, 'yyyy-mm'),(select t.unit_cname from t_unit t where t.unit_code = tp.uni原创 2013-08-21 16:29:47 · 852 阅读 · 0 评论 -
Oracle中DECODE函数的应用
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。 函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。 区别于SQL的其它函数,DECODE函数还能识别和操作空值. 其具体的语法格式如下: DECODE原创 2013-08-21 16:39:04 · 848 阅读 · 0 评论 -
ORACLE中文排序方式 vs SQL Server 2005的中文排序问题
Oracle9i之前,中文是按照二进制编码进行排序的。 在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序 修改ORACLE字段的默认排序方转载 2013-05-30 22:58:37 · 1215 阅读 · 0 评论 -
修改数据时报错------ORA-01480: STR 绑定值的结尾 Null 字符缺失
最近做了一个改变数据库某一字段的值,这个值比之前输入的字数要多,开始的时候,直接在PL/SQL Developer中用常规的select ...for update 的方法修改,可是每次都几个字都会报错“ORA-01480: STR 绑定值的结尾 Null 字符缺失”,我以为是定义的字段长度不够长,不过看了下是varchar(2000),我修改的只有不到400个汉字,看来不是这个问题,后来在网上搜原创 2013-01-28 16:34:59 · 16025 阅读 · 4 评论 -
SQL经典面试题---group by 和 case when 的使用
SQL经典面试题及答案1.一道SQL语句面试题,关于group by表内容:2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2005-05-10 负如果要生成下列结果, 该如何写sql语句? 胜 负2005-05-09 2转载 2013-04-10 14:34:50 · 8682 阅读 · 0 评论 -
Hibernate对数据库进行更新删除及service层调用的处理
public boolean save(TpTitempRel transientInstance) { boolean returnValue=true; Transaction tr = null; try { tr = getSession().beginTransaction(); getSession原创 2013-03-14 10:03:01 · 996 阅读 · 0 评论 -
PLSQL中改日期时报错ORA-01843无效的月份
造成ORA-01843无效的月份的一些原因1)当我们在一个中文环境的客户端使用如下sql语句INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') )Runtime error occurred: 1843 (ORA-0184转载 2013-04-23 17:34:14 · 10184 阅读 · 1 评论 -
Oracle 体系结构以及Oracle实例与数据库的区别
一个Oracle数据库服务器包括两方面:1.物理数据库,即保存Oracle数据的一系列的物理文件,包含控制文件、数据文件、日志文件和其他文件。2.Oracle实例:这是物理数据库和用户之间的一个中间层,用来分配内存,运行各种后台进程。因此,这些分配的内存区和后台进程构成了Oracle实例。我们平时开发中,自己电脑作为客户端,连接并使用数据库时,实际上,是连接到该数据库的实例,由实例原创 2013-05-19 16:50:25 · 1203 阅读 · 0 评论 -
Oracle 系统中方案的概念
在Oracle系统中,方案是一个非常重要的概念,方案的名称与用户的名称相同,但是方案与用户是两个完全不一样的概念。默认情况下,所有用户所创建的对象都位于自己的方案中,也就是说Oracle使用方案的方法将数据库按用户进行了划分。详细看看网友分享的:首先先理解方案的概念,然后再理解方案与数据库的关系。先来看一下他们的定义:A schema is a collection of da转载 2013-05-19 17:28:47 · 822 阅读 · 0 评论 -
Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
1.system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。2.sys用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,sys用户必须以sysdba身份登录。system用户以sysdba身份登录时就是sys,准确地说,任何用户以sysdba身份登录时都是sys,这一点,登陆后执行show us转载 2013-05-19 17:34:45 · 1715 阅读 · 0 评论 -
Oracle数据库与SQL Server数据库的区别
Oracle体系结构与SQL Server 有着本质的区别,不只是不同厂商类似的数据库产品。、1.Oracle 数据库系统是一个跨平台的数据库管理系统,可以运行在Windows、UNIX、Linux等操作系统上,而SQL Server只能运行在微软的OS上。2.Oracle中一个实例只能管理一个数据库或者多个实例管理一个数据库,而SQL Server中一个实例可以创建并管理多个数据库。(原原创 2013-05-19 17:19:53 · 1657 阅读 · 0 评论 -
如何写出高效率的sql语句
如何写出高效率的sql语句(sql的执行顺序:先执行where、然后是group 、然后是having 、最后是order by)(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必需选择记实转载 2013-05-10 13:31:15 · 953 阅读 · 0 评论 -
Oralce数据库的优化(面试必问题)
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表 (intersection table)作为基础表, 交叉表是转载 2015-12-17 22:56:29 · 606 阅读 · 0 评论