oracle
文章平均质量分 64
zzm628
这个作者很懒,什么都没留下…
展开
-
oracle双层循环问题
create or replace procedure test_procedure is --a表游标定义 cursor a_cursor is select id from a; --b表游标定义 cursor b_cursor(aid number) is select id from b where b.id = aid;begin for a_cur原创 2016-04-26 18:12:55 · 885 阅读 · 0 评论 -
Oracle创建、重建和删除索引
创建索引: SQL> create index mcconf_index on mc$ma_warn_config (NAME); Index created. SQL> select owner,object_name from all_objects where object_type='INDEX' and object_name='MCCONF_INDEX';转载 2016-06-12 17:46:57 · 1211 阅读 · 0 评论 -
Select语句完整的执行顺序
SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、使用order by对结果集进行排序 select --5 from --1 where -转载 2016-07-27 15:49:53 · 307 阅读 · 0 评论 -
Oracle 修改表名 列名 字段类型 及 comment注释信息
1、创建表create table TEST( ID NUMBER not null, NAME VARCHAR2(20))ALTER TABLE SCOTT.TEST RENAME TO TEST1--修改表名ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME1 --修改表列名ALTER TABLE SCOT原创 2016-06-20 16:16:35 · 1037 阅读 · 0 评论 -
oracle日期时间加减规则
1、日期的加减都是以天为单位的SELECT to_date('2016-07-05 13:10:00', 'yyyy-mm-dd hh24:mi:ss') + 1 FROM dual;结果:2016-07-06 13:10:002、如果需要加减小时或者分钟,则除以24或者是60SELECT to_date('2016-07-05 13:10:00', 'yyyy-m原创 2016-07-07 14:57:10 · 1042 阅读 · 0 评论 -
在oracle中where 子句和having子句中的区别
1.where 不能放在GROUP BY 后面2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句。下面分别说明其用法和异同点。注:本文使用字段为oracle数据转载 2016-07-29 14:17:51 · 278 阅读 · 0 评论 -
ORACLE中AND与OR的优先级
1、AND比OR的优先级高--Yselect 'Y' from dual where 1=2 and 1=2 or 1=1;--Yselect 'Y' from dual where (1=2 and 1=2) or 1=1;--No valueselect 'Y' from dual where 1=2 and (1=2 or 1=1);原创 2016-08-04 15:19:56 · 17896 阅读 · 6 评论 -
ORACLE中ESCAPE关键字用法
ESCAPE用法1.使用 ESCAPE 关键字定义转义符: 在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。2.ESCAPE 'escape_character' 允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。 select * from a WHERE name LIKE '%aa/转载 2016-08-03 11:12:37 · 370 阅读 · 0 评论 -
plsql中暂停变量的使用,否则如果sql中出现一些 < >时无法插入
plsql中暂停变量的使用,否则如果sql中出现一些 < >时无法插入。方法如下:(在命令窗口中执行) Set define OFF;原创 2016-08-03 11:54:48 · 1528 阅读 · 0 评论 -
oracle 中使用单引号(')和双引号(")
--在ORACLE中,单引号有两个作用:-- 1:字符串是由单引号引用-- 2:转义。--单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解--1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。 SQL> select '''' result from dual;RESULT------' --第二个单引转载 2016-08-08 13:20:52 · 3734 阅读 · 0 评论 -
rank() over(partition)的使用
有的时候会遇到这样的问题,我们需要查询一张表,而且要按照业务排序,比如我需要如下的结果: 地区 日期 费用 产品编号 用户编号 290 201202 258 1 s1 290 201202 200 1 s5 290 201202 100 1 s100转载 2016-08-11 11:59:20 · 374 阅读 · 0 评论 -
oracle读取评论列表,先按点赞次数取前三名,然后按创建时间倒序排序,需要分页
oracle读取评论列表,先按点赞次数取前三名,然后按创建时间倒序排序,需要分页:第一种方式:select * from (SELECT b.*, DECODE(rownum, 1, 1, 2, 2, 3, 3, 4) rank FROM (SELECT a.* FROM ACT_COMMENT_INFO a原创 2016-12-27 17:38:38 · 1535 阅读 · 0 评论 -
oracle获取两个月前的时间
SELECT add_months(sysdate,-2) FROM dual;SELECT sysdate-60 FROM dual;两种方式,取得的日期不一定是同一时间原创 2017-03-28 15:22:55 · 9281 阅读 · 0 评论 -
通过mybatis批量获取oracle序列号的方法
mapper中定义方法:List selectNodeIdList(int size);xml中的实现:select SEQUENCE_NEO4J_ID.nextval from (select 1 from anyTable where rownum <= #{size})原创 2017-04-21 19:31:31 · 3259 阅读 · 1 评论 -
oracle如何设置序列当前值
Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多。但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改:alter sequence sequencename start with xxxxxxxx。但是,在Oracle DB中,修改序列没有这样的语法。下面介绍几种修改方式:1.先删除序转载 2017-04-26 09:53:10 · 1702 阅读 · 0 评论 -
oracle 取整的几种方法
--1.取整(大)select ceil(-1.001) value from dual;--2.取整(小)select floor(-1.001) value from dual;--3.取整(截取)select trunc(-1.002) value from dual; --4.取整(舍入) select round(-1.001) v转载 2017-07-20 10:21:54 · 4521 阅读 · 0 评论 -
oracle中的decode的使用
Oracle 中 decode 函数用法含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值转载 2016-06-02 18:58:47 · 241 阅读 · 0 评论 -
oracle 树状查询
connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'HBHqfWGWPy' connect by prior org_id =转载 2016-06-01 11:58:22 · 272 阅读 · 0 评论 -
oracle实现"limit"功能
oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的。(1)使查询结果最多返回前10行:select * from OB_CALL_DATA_LOG where rownum(2)使查询结果返回中间的10到100行:如: select * from转载 2016-04-11 11:16:07 · 1193 阅读 · 0 评论 -
PLSQL Developer报错:ora-12514:tns:无法解析指定的连接标识符
PLSQL Developer报错:ora-12514:tns:无法解析指定的连接标识符解决方法:是PLSQL的安装路径错了,我的就是那个问题,卸载了重装PLSQL,不要放在Program Files (x86)文件夹下,放到Program Files文件夹下就好了~原创 2016-04-11 11:49:12 · 4559 阅读 · 0 评论 -
oracle job 定时执行 存储过程
一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式SQL> create table JOB_TEST(a date);Table createdSQL> commit;Commit complete2,创建一个存储过程 bb 作用是往pig表中插入数据SQL> create or replace procedure JOB_P转载 2016-05-24 08:56:16 · 307 阅读 · 0 评论 -
Oracle 增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法:alter tab转载 2016-05-11 18:00:19 · 303 阅读 · 0 评论 -
Oracle查询重复数据并删除,只保留一条记录
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) I转载 2016-05-11 18:02:05 · 328 阅读 · 0 评论 -
Oracle TO_DATE 日期格式
Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007转载 2016-05-11 18:11:21 · 377 阅读 · 0 评论 -
oracle函数trunc的使用
1、日期比较时精确到日,可以使用 TRUNC(sysdate,'dd')函数。函数支持格式有:yyyy MM dd hh Mi可以用 select TRUNC(sysdate,'yyyy') from dual 看看结果是什么。不要按下面的方式比较日期:TO_DATE(TO_CHAR(LOGTIME,'YYYY-MM-DD'), 'YYYY-MM-DD')转载 2016-05-11 18:11:43 · 303 阅读 · 0 评论 -
8个SQL语句常用优化技巧
要提高SQL语句的执行效率,最常见的方法就是建立索引,以及尽量避免全表扫描。在本章MySQL教程中,UncleToo给大家整理一些常见的SQL优化技巧,避免全表扫描。一个简单的优化,也许能让你的SQL执行效率提高几倍,甚至几十倍。1、避免在where子句中使用 is null 或 is not null 对字段进行判断。如:select id from tabl转载 2016-05-11 18:20:36 · 362 阅读 · 0 评论 -
5段SQL可以测试出你对SQL性能优化知识了解多少
数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。 下面UncleToo为大家整理出5段SQL,都是大家平时经常写的SQL,但是稍微经过一些优化,或者换种写法,也许他的执行效率就会高出好几倍,大家也可以对照自己平时的写法,看看自己是否还有继续学习的空间。 本文介绍的SQL是转载 2016-05-11 18:20:14 · 751 阅读 · 0 评论 -
Oracle之分页查询
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM 40 ) WHERE RN >= 21 其中最内层的查询S转载 2016-05-11 18:24:58 · 313 阅读 · 0 评论 -
oracle实现"limit"功能
oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的。(1)使查询结果最多返回前10行:select * from OB_CALL_DATA_LOG where rownum(2)使查询结果返回中间的10到100行:如: select * from转载 2016-05-11 18:25:23 · 1066 阅读 · 0 评论 -
Oracle trunc()函数的用法
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-062.select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.3.select转载 2016-05-19 10:09:23 · 513 阅读 · 0 评论 -
oracle条件分支用法 oracle 之if..else用法
oracle条件分支用法a.if...thenb.if...then... elsec.if...then... elsif.... else 实例 1问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 create or replace procedure sp_pro6(spName转载 2016-05-19 10:10:51 · 11084 阅读 · 0 评论 -
oracle rownum与order by
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。举例说明:例如表:student(学生)表,表结构为:ID char(6) --学号name VARCHAR2(10) --姓名 create转载 2016-05-19 10:34:40 · 1095 阅读 · 0 评论 -
prepareStatement与Statement的区别
目录(?)[-] prepareStatement与Statement的区别区别在开发中一般用PrepareStatement prepareStatement与Statement的区别1.区别:stmt=conn.CreateStatement();resultSet rs=stmt.exe转载 2016-05-19 10:55:38 · 314 阅读 · 0 评论 -
oracle中decode的使用以及如果使用decode进行范围匹配
1 、含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(返回值1)ELSIF 条件=值2 THEN RETURN(返回值2) ......ELSIF 条件=值n THEN RETURN(返回值n)ELSE RET原创 2017-10-13 09:10:50 · 6216 阅读 · 0 评论