SQL%NOTFOUND 是一个布尔值.与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true.否则返回false.这样的语句在实际应用中,是非常有用的.例如要update一行数据时,如果没有找到,就可以作相应操作.如: begin update table_name set salary = 10000 where emp_id = 10; if sql%notfound then insert into…
SQL%NOTFOUND 是一个布尔值.与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true.否则返回false.这样的语句在实际应用中,是非常有用的.例如要update一行数据时,如果没有找到,就可以作相应操作.如: begin update table_name set salary = 10000 where emp_id = 10; if sql%notfound then insert into…
Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了序列的用法,希望能够对您有所帮助. 在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.…
在Oracle中进行查询排序时,如果排序字段里面有空值的情况下,排序结果可能会达不到自己想要的结果.   如 select * from tableTest order by VISITS desc   上图可以看到表示服务访问次数的“VISITS”字段上的空值记录排序时放在前面,和实际逻辑不对   将原来的sql语句改写为:select * from tableTest order by VISITS desc nulls last,   "nulls last"控制将空值记录放在后…
Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ; --查询显示:2007-12-20 18:31:34.0 -----------------…
往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ; 查询显示:2007-12-20 18:31:34.0 ------------------- INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-14 14:10' , 'YYYY-MM-DD HH2…
对于DBA来说,这是一个非常常见的问题,DBA需要找出以下问题: 1.哪些用户在跑哪些SQL? 2.一个特定的SQL是被哪个用户在执行? 3.一个特定的用户在跑哪些SQL? 从这些问题中可以很明显的看出来,这些问题都是指当前,此刻发生的.事实上,还可以获得更多类似的内容: 1.当前登录数据库的有哪些用户? 2.哪些计算机在被用户登录? 3.一个SQL跑了多久了? 所有以上这些问题都对你的数据库性能调优有关.在ORACLE数据库中可能存在性能低下的SQL语句,这时候你就需要识别用户,SQLs,以便…
Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B…
Oracle数据库中的SQL基线信息,当数据库出现性能问题时,在业务无法提供相应业务信息时,通过对比SQL基线信息来查找SQL的变化. 查找数据库一天内运行次数大于5000次的sqlid select sql_id,sum(EXECUTIONS_DELTA)from dba_hist_sqlstat a,dba_hist_snapshot b where a.snap_id=b.snap_id and a.INSTANCE_NUMBER=b.INSTANCE_NUMBER and to_char…
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方. 1.Create Sequence (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限) CREATE SEQUENCE emp_sequence INCREMENT BY 1 —— 每次加几个 START WITH 1 —— 从1开始计数 NOMAXVALUE —— 不设置最大值 NOCYCLE —— 一直累加,不循环 CA…
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL,除此之外,还可以用时下最流行的编程语言Java来做开发.随着对oracle的了解越来越多,越来越禁不住oracle的诱惑,oracle技术真的是一门很有趣的学问.之前,我在博客中总结了挺多有关SQL.PL/SQL的,但是对于oracle数据库中Java类的调用却没有总结,也是因为之前不太会,这会儿总…
http://www.jcwcn.com/article/database/oracle/ 今天上班犯了一个严重的错误:把我们系统所使用的Oracle数据库中的数据给改掉了!当发现自己改错时,顿时冒了一身冷汗.不过转念一想,我们不是定期作了数据库备份的嘛,适当的恢复一下,应该不会出现太大的问题吧,因为我只是错误的使用了一个update语句. 问题是这样的: 我们给系统创建了两个用户:com和comtest.前者存放的是正式库数据,后者存放的测试库数据.它们都有一个taw_rm_user表,存放了…
from:http://blog.csdn.net/zhanzhib/article/details/48729417 触发器的意思就是当我们对数据库对象(一般是表或视图)进行insert.update.delete操作的时候,这些操作会相应的触发一些事件的执行,通常要执行的事件被写成PL/SQL程序,那么这些数据库对象上的事件相关的程序就是触发器(trigger).Oracle数据库中,触发器分为before.after.instead of三种,其中before.after主要对于表操作,i…
一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name VARCHAR2(254) default '', content CLOB default '', create_time VARCHAR2(26) default '', cindex NUMBER default 0, status VARCHAR2(4) default '0' not n…
在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力. 在Oracle数据库中,如何完成分页SQL的编写,影响着系统开发的速度,特提供两个SQL的分页模板: (1).采用oracle的内置函数ROWNUM.(ROWNUM是结果的伪列,仅仅当聚集结果时产生,但早于排序或聚合) select <columns I actually want>,rown…
Oracle 中如何插入日期时间类型的数据,首先为了演示, 新建数据表如下 create table t( mydate date); 插入日期时间 SQL> insert into t values(to_date('2015-1-30 12:20:33','YYYY-MM-DD HH24:MI:SS')); 查询日期时间 SQL> select to_char(mydate,'YYYY-MM-DD HH24:MI:SS') from t; 参数忽略时的情景 当省略HH.MI和SS对应的输入…
向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例UserInfo数据是正确的,所以只能是SQL语句的问题: 曾今一度怀疑这样使用Sequence是错误的,中途变换了触发器,弄了变天触发器也些错误了, 再次回到直接用序列,仔细之下,终于发现这个分号‘:’,这里应该为‘:’,实在是太小了,很难发现,以后这里最好留一个空格.…
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sql文件: 第二步:用PL/Sql Developer 连接另外一个oracle数据库,打开这个sql文件,全选所有insert语句,执行所有插入sql语句即可: 这种方法试用于插入大多数的数据库,无论是oracle数据库还是sql server数据库都可执行这个sql文件(全是insert语句).…
本文介绍了几种快速查找ORACLE数据库中的重复记录的方法. 下面以表table_name为例,介绍三种不同的方法来确定库表中重复的记录 方法1:利用分组函数查找表中的重复行:按照某个字段分组,找出行数大于1的列,即由重复记录 利用select 语句中的分组函数GROUP BY/HAVING可以很容易确定重复的行.假设需要创建惟一索引的列为column, 对column用group by分组统计并返回每组的个数,如果组中记录数超过1个就存在重复的行.命令如下:SQL>Select column…
1.第一个SQL 背景:需要找到SQL Server数据库中,包含某个字符串的表,输出表和包含该字符串的列. )='=' --这里填要搜索的字符串 DECLARE @sql NVARCHAR(MAX) SET @sql=N'DECLARE @sql NVARCHAR(MAX),@ColNames NVARCHAR(MAX),@ColValues NVARCHAR(MAX);SET @ColNames=NULL;SET @ColValues=NULL; SELECT @ColNames=ISNUL…
一.说明 第一次使用Oracle,想做一些练习,熟悉一些oracle. 表:使用的是scott用户,默认的表 具体表讲解,可以参考该文档:https://www.cnblogs.com/xjcheng1/p/7220159.html 二.基础练习 第一.查询工资在0-1000,1000-2000,2000-3000,3000以上各个工资范围的员工数. SELECT SUM(CASE WHEN sal>0 AND sal<1000 THEN 1 ELSE 0 END) AS "0<…
在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了.查看方法如下SQL: 方法一: select dbf.tablespace_name, dbf.totalspace "总量(M)", dbf.totalblocks as 总块数, dfs.freespace…
今天做了个面试题:查找Oracle数据库中的重复记录,下面详细介绍其他方法(参考其他资料) 本文介绍了几种快速查找ORACLE数据库中的重复记录的方法. 下面以表table_name为例,介绍三种不同的方法来确定库表中重复的记录 方法1:利用分组函数查找表中的重复行:按照某个字段分组,找出行数大于1的列,即由重复记录 利用select 语句中的分组函数GROUP BY/HAVING可以很容易确定重复的行.假设需要创建惟一索引的列为column, 对column用group by分组统计并返回每组…
前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法如有错误还请大家及时指出~ 以下都是采用mysql数据库 Group By 概念 Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". 作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 注意:group by…
oracle 数据库中,应用程序里的连接探測语句的正确使用 本文为原创文章.转载请注明出处:http://blog.csdn.net/msdnchina/article/details/38513765 在非常多程序里边.连接探測(或者连接检測)语句,都是用的select sysdate from dual; 这是典型的"仅仅要功能实现,无论性能怎样"的写法.事实上,连接探測语句.应该用select 1 from dual; 或许有人说,程序猿们非常辛苦,能实现功能就不错了.可是.我想…
.oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow 2.DB2数据库分页 Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and endrow 3.SQL…
ORACLE数据库中,我们会使用一些SQL语句找出存在隐式转换的问题SQL,其中网上流传的一个SQL语句如下,查询V$SQL_PLAN的字段FILTER_PREDICATES中是否存在INTERNAL_FUNCTION: SELECT      SQL_ID,      PLAN_HASH_VALUE FROM      V$SQL_PLAN X WHERE      X.FILTER_PREDICATES LIKE '%INTERNAL_FUNCTION%' GROUP BY      SQL…
Oracle数据库中的变量 来源:https://blog.csdn.net/wahaa591/article/details/46772769 1.define(即host变量) define variable_name = value 显示指定的DEFINE变量值和类型: //使用define def_name命令显示指定DEFINE变量的值和类型(DEFINE变量类型都为char) SQL> define num; DEFINE num = "1" (CHAR) 2.Var…
1.set autotrace traceonly命令 2.explain plan for命令 1)explain plan for select * from dual; 2)select * from table(dbms_xplan.display); 3.10046查看Oracle数据库中的执行计划 能够得到SQL执行计划中每一个执行步骤所消耗的逻辑读,物理读,和花费的时间.实际上,也可以通过gather_plan_sstatistics Hint 配合dbms_xplan 包一起使用…
如何将dmp文件导入到oracle数据库中 1.首先,我们可以先建立自己的一个用户表空间,创建表空间的格式如下: CREATE TABLESPACE certification(表空间的名字) DATAFILE 'E:\Oracle_11g\app\Administrator\oradata\orcl\certification.dbf' (这边可以写成oracle的某个路径下)SIZE 20M(初始大小)AUTOEXTEND ON;(自动扩展) 2.接下来,我们可以创建一个自己的用户,创建格式…