数据库-Oracle
文章平均质量分 67
数据库-Oracle
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Oracle创建dblink数据库链接
我们想要创建dblink前提是该用户有创建dblink的权限。如果没有权限是创建不了dblink的。那么我们只需要用管理员账号给该用。户授予相应的权限即可。转载 2023-07-12 15:08:09 · 781 阅读 · 0 评论 -
Oracle lag、lead函数
over()表示Lag()与Lead()操作的数据都在over()的范围内,他里面可以使用partition by语句(用于分组) order by语句(用于排序)。partition by a order by b表示以a字段进行分组,再以b字段进行排序,对数据进行查询。例如: lead(field, num, defaultvalue) field需要查找的字段,num往后查找的num行的数据,defaultvalue没有符合条件的默认值,num默认值为1。转载 2022-10-26 14:42:28 · 289 阅读 · 0 评论 -
Oracle rtrim、to_char函数格式化数字 小数Format展示,FM999990D99
rtrim(to_char(ROUND(T.MANAGER_YIELD,4)*100, 'FM999990D99'), to_char(0, 'D'))原创 2022-09-27 16:48:29 · 2934 阅读 · 0 评论 -
ORACLE 偏移分析函数 lag()与lead() 用法
lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤。例如:lead(field, num, defaultvalue) field需要查找的字段,num往后查找的num行的数据,defaultvalue没有符合条件的默认值。c、获取号牌号码相同的,当前记录的id与,下一条记录的id(使用partition by)a、获取当前记录的id,以及下一条记录的id。转载 2022-09-09 16:48:48 · 1205 阅读 · 0 评论 -
SQL 分析函数之KEEP (DENSE_RANK FIRST/LAST)
在业务数据中可能遇到这样的需求。希望获取部门内年龄最小的人中,工资最高的记录。此时就需要使用KEEP(DENSE_RANK FIRST/LAST)来处理数据了。这里我们筛选age最小的记录。keep的意思就是“保持”,会保持满足括号内条件的记录,用ORDER BY 后自然会有FIRST和LAST了。例如,它会将两个第二名排在第一名之后,之后还是第三名排在第二名之后。在这六条数据中,我们期望的数据是:(DOM1,4000)和(DOM2,6500)。模拟数据的sql一定要跟select语句同时执行。转载 2022-09-09 13:35:34 · 704 阅读 · 0 评论 -
Oracle分析函数-first_value()和last_value()
到目前为止,我们所学习的分析函数在计算/统计一段时间内的数据时特别有用,但是假如计算/统计需要随着遍历记录集的每一条记录而进行呢?举些例子来说:①列出每月的订单总额以及全年的订单总额②列出每月的订单总额以及截至到当前月的订单总额③列出上个月、当月、下一月的订单总额以及全年的订单总额④列出每天的营业额及一周来的总营业额⑤列出每天的营业额及一周来每天的平均营业额。转载 2022-09-06 17:18:18 · 1474 阅读 · 0 评论 -
Oracle数据库表被锁了,如何解锁
急救SQL:查出所有被锁表的 sid 和 serial#,拼接成kill语句select 'alter system kill session ''' || b.sid || ',' || b.serial# || '''immediate;'from v$locked_object a,v$session bwhere a.session_id = b.sid and a.SESSION_ID in(select a.session_idfrom v$locked_object f,dba_原创 2022-05-21 17:53:27 · 2052 阅读 · 0 评论 -
JDBC连接Oracle的三种URL格式【SID、SERVICENAME、TNS】
使用jdbc连接oracle时url有三种格式格式一: Oracle JDBC Thin using an SIDjdbc:oracle:thin:@host:port:SID 例如: jdbc:oracle:thin:@localhost:1521:orcl 这种格式是最简单也是用得最多的。你的oracle的sid可以通过一下指令获得:sqlplus / as sysdba select value from v$parameter where name='instance_n转载 2022-03-08 09:57:53 · 9184 阅读 · 1 评论 -
dblink实例创建——报错ora-12154
First,什么是DBLINK?**dblink(Database Link)**数据库链接顾名思义就是数据库的链接 ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。通俗的说:你在A数据库上建立关于B数据库的dblink,就可以在A数据库上取B数据库的数据了!!!Second,实例操作!现在我有两个数据库,一个是本地虚拟机的数据库转载 2021-11-23 10:38:12 · 1483 阅读 · 0 评论 -
【Mybatis】解决Oracle查询处理in条件超过1000条的问题
直接上SQL吧,思路很简单:select * from test_tablewhere 1 = 1<!-- IdList --><if test="IdList != null and IdList.size > 0"> AND PK_ID IN <!-- 处理in的集合超过1000条时Oracle不支持的情况 --> <trim suffixOverrides=" OR PK_ID IN()"> <...转载 2021-04-02 13:17:39 · 693 阅读 · 0 评论 -
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
同事在学mybatis时,遇到了一个问题就是,使用char类型字段作为查询条件时一直都查不出数据,其他类型的则可以。使用的数据库是oracle,查询条件字段类型是char(50),java代码对应的是String类型。后来经过排查,是由于在oracle中,char类型字段,如果内容长度不够,会自动以空格方式补足长度。如字段 name char(5),若值为sgl,那么oracle会自动用空格补足长度,最终值为sgl。一、解决方法:方法1:先用trim()函数把值去掉两边空格再作为条件查询,如转载 2021-03-18 17:28:51 · 1629 阅读 · 0 评论 -
使用Oracle显式游标及for循环
使用隐式游标和显式游标:1.查询返回单行记录时→隐式游标;2.查询返回多行记录并逐行进行处理时→显式游标--显示游标属性declareCURSOR cur_emp IS SELECT * FROM emp;row_emp cur_emp%ROWTYPE;BEGINOPEN cur_emp;FETCH cur_emp INTO row_emp;WH转载 2014-07-11 17:09:20 · 1714 阅读 · 0 评论 -
oracle日期时间型timestamp相关学习
1、获取系统时间的语句(ssxff6获取小数点后面六位)select sysdate,systimestamp,to_char(systimestamp, 'yyyymmdd hh24:mi:ssxff6'), to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff6') from dual; 2、字符型转成timestamp selec转载 2014-12-16 13:49:24 · 1624 阅读 · 0 评论 -
oracle split去逗号,行列转换
1.针对 '1','2','3','4','5'(逗号在字符串外面)[sql] view plaincopyprint?SQL> SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); COLUMN_VALUE ---------------------------转载 2014-11-19 15:36:15 · 5923 阅读 · 0 评论 -
oralce逗号分割变多行 Oracle中REGEXP_SUBSTR函数
oralce逗号分割变多行 方法一select a.* , REGEXP_SUBSTR(a.rolecode ,'[^,]+',1,l) AS rolecode from p_user a,(SELECT LEVEL l FROM DUAL CONNECT BY LEVELWHERE l www.2cto.com 使用函数REGEXP_SUBSTR拆分字转载 2014-11-19 15:08:32 · 30485 阅读 · 1 评论 -
Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用
这篇对oracle几种字符类型总结的比较好,收藏了。一 varchar,varchar2,nvarchar,nvarchar2 四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节,都是非 Unicode 字符数据,可以定义的最大长度为4000字节。 nvarchar和nvarchar2的区别和上面一样,转载 2014-08-08 11:10:56 · 1835 阅读 · 0 评论 -
Oracle 查看当前连接数与会话数情况
select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and b.USERNAME is not null group by b.MACHINE , b.PROGRAM order by count(*) desc转载 2014-04-14 10:46:14 · 4342 阅读 · 0 评论 -
对比Oracle和Mysql在锁机制上的类似和差异点
在进一步分析Hadoop相关的分布式事务和锁的机制前,有必要先整理和对比分析一下RDBMS领域最红的两大领军人物Oracle VS Mysql1:事务隔离级别oracle默认为Read committedMysql的InnoDB默认为Repeatable Read.2:锁类别oracle内部级封锁(对外不公布,无法了解)DDL锁(对数转载 2015-08-31 20:08:14 · 3690 阅读 · 0 评论 -
Oracle闪回查询恢复delete删除数据
Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回。Flashback query(闪回查询)前提:SQL> show parameter undo;NAME TYPE转载 2014-01-26 15:59:10 · 2894 阅读 · 0 评论 -
Oracle中merge into的使用
http://blog.csdn.net/yuzhic/article/details/1896878http://blog.csdn.net/macle2010/article/details/5980965该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE转载 2014-06-13 11:43:43 · 1134 阅读 · 0 评论 -
oracle 查询当前占用cpu及时间最长的sql语句
SELECTA.USERNAME, A.COMMAND, A.STATUS,A.PROGRAM, A.MACHINE, A.CLIENT_IDENTIFIER,B.SQL_TEXT,B.CPU_TIME,B.SHARABLE_MEM,ROUND((B.DISK_READS + B.BUFFER_GETS)/B.EXECUTIONS)AS RESOURCE_COSTF原创 2014-07-23 12:13:51 · 10034 阅读 · 0 评论 -
oracle数据库之间数据同步 DBLINK
这段时间负责某个项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中某些系统表数据与基础资料数据经常需要进行同步,为方便完成指定数据表的同步操作,可以采用dblink与merge结合的方法完成,简单方便。操作环境: 此数据库服务器ip为192.168.196.76,有center与branch两个库,一般需要将center的表数据同步到branch,center为源库,bran转载 2014-03-10 16:41:33 · 9052 阅读 · 0 评论 -
oracle创建表空间
注意点:1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行2.确保路径存在,比如【D:\oracle\oradata\Oracle9i\】也就是你要保存文件的路径存在/*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace user_temp tempfile 'D:转载 2014-02-10 17:06:10 · 1506 阅读 · 0 评论 -
ORACLE几个关于工作日数的函数(原创)
最近做到一个关于销售日报的模块,而其中需要有月达成率等几项需要用到工作日做分母的情况这样就要得到工作日的数量怎样得到两个日期之间除了星期天,星期六的天数,oracle中可以使用下面的句子select count(*)from ( select rownum rnum from all_objects where rownum w转载 2014-06-25 10:57:10 · 11169 阅读 · 1 评论 -
Oracle计算指定日期内的工作日(不包含周末)
1、获取当天是礼拜几:select to_char(sysdate,'d') from dual; --礼拜天为1,礼拜一为2,类推2、获取 两个时间段间的 工作日:select (trunc(&end_dt - &start_dt) - ((case WHEN (8 - to_number(to_char(&start_dt,'D'))) > trun转载 2014-06-25 10:40:26 · 24847 阅读 · 3 评论 -
oracle job 定时执行 存储过程
oracle job 定时执行 存储过程一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式SQL> create table JOB_TEST(a date);Table createdSQL> commit;Commit complete2,创建一个存储过程 bb 作用是往pig表中转载 2014-12-16 13:33:28 · 3489 阅读 · 0 评论 -
oracle中斜杠(/)的含义
如果是语句的话,;表示结束并且运行如果是程序块或者pl块,;表示结束不运行,必须/表示运行斜杠就是让服务器执行前面所写的sql脚本。如果是普通的select语句,一个分号,就可以执行了。但是如果是存储过程,那么遇到分号,就不能马上执行了。这个时候,就需要通过斜杠(/)来执行。12345set ser转载 2015-01-26 10:03:41 · 9064 阅读 · 1 评论 -
Oracle存储过程,带游标
CREATE OR REPLACE PROCEDURE rrrr is cursor mycursor is select t.mc_dx from t_func_xt_ywdxsm t ; t_mycursor mycursor%ROWTYPE;begin -- strSql:='select t.hol_days,t.hol_days_left,t.hol_days_wai原创 2012-12-10 16:34:42 · 1519 阅读 · 0 评论 -
分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
https://blog.csdn.net/rfb0204421/article/details/7672207https://blog.csdn.net/wawmg/article/details/40840093语法:sum(col1) over(partition by col2 order by col3 )准备数据:DEPT_IDENAME...转载 2018-12-25 16:46:36 · 3699 阅读 · 1 评论 -
order by 语句对null字段的默认排序
转自:http://m.blog.csdn.net/article/details?id=6554168在使用order by语句进行查询结果排序时,不同的数据库对于被排序字段数据行为null的情况,处理方式有所不同,这里我们主要考虑oracle和mysql数据库。首先我们直接给出结论:leeyee 写道【Oracle 结论】 order by colum as转载 2017-04-12 10:34:30 · 5129 阅读 · 0 评论 -
Oracle中如何删除重复数据
我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。 一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) fr转载 2013-11-05 10:23:21 · 1448 阅读 · 0 评论 -
Oracle 删除重复数据只留一条
查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录转载 2013-11-05 10:15:52 · 1477 阅读 · 0 评论 -
结合例子理解排他(exclusive)锁和共享(shared)锁
结合例子理解排他(exclusive)锁和共享(shared)锁锁跟事务是联系在一起的,锁的生命周期是事务开始到事务结束(不管是提交还是回滚都是结束)。 所以,讲到锁就不能回避事务而单单去讲锁的含义。但我们还是先讲例子再讲锁的定义.首先,根据锁类型划分有排他(exclusive)锁和共享(shared)锁。下面举例:通过DML语句对一张表的某一行数据进行修改,一个事转载 2015-08-23 11:07:17 · 3846 阅读 · 0 评论 -
ORACLE 多表关联 UPDATE 语句
为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中,SQL 代码--客户资料表create table customers(customer_id number(8) not null, -- 客户标示city_name varchar2(10) not null, -- 所在城市customer_type char(2) not null转载 2015-08-31 11:35:52 · 1933 阅读 · 0 评论 -
Oracle kill inactive 线程
CREATE OR REPLACE PROCEDURE "KILL_SESSION" AS v_sid number; v_serial number; killer varchar2(1000); CURSOR cursor_session_info is select sid,serial# from v$sess转载 2015-04-20 09:46:39 · 1488 阅读 · 0 评论 -
查看ORACLE是共享还是专用服务器模式
1.select count(*) from v$shared_server;或不为O表示为共享服务器模式。2.在tnsnames.ora里设定的aaaa=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521)))(CONNECT_DATA =(SID转载 2015-01-22 11:13:52 · 4099 阅读 · 0 评论 -
使用Oracle的Job+Procedure实现数据的定时迁移备份
--创建数据迁移的日志表,记录自动数据迁移的执行时间create table mc_movedata_log(id varchar2(50) default sys_guid(),tb_name varchar2(50) not null,last_op_time date null);以下是对mc_msg_store表进行每天(凌晨4:30)轮询数据迁移的步骤。1.--创原创 2014-12-16 10:23:04 · 3702 阅读 · 1 评论 -
Oracle密码过期the password has expired
调试Web项目的时候出现异常:[java] view plaincopyprint?java.sql.SQLException: ORA-28001: the password has expired 网上查了一下,是Oracle11g密码过期的原因连接Oracle,以Oracle用户登陆,输入以下命令[sql] view plaincop转载 2014-12-13 22:13:01 · 2241 阅读 · 0 评论 -
Oracle 实例名/服务名 请问SID和Service_Name有什么区别啊?
可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,就好像一个部门里,每个人都有一个自己的名字。2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称转载 2014-05-13 14:02:27 · 63354 阅读 · 3 评论 -
oracle trunc 函数处理日期格式,日期类型很有用的几个sql
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间2011-12-29 16:24:34select trunc(sysdate,'year') from dual; --截取到年(本年的第一天)2011-1-1select trunc(sysdate,'q') from dual; --转载 2014-06-25 10:30:36 · 4048 阅读 · 0 评论