Oracle
文章平均质量分 70
风中的妖娆落叶
这个作者很懒,什么都没留下…
展开
-
Oracle -- oracle数据库优化辅助SQL语句
--查询正在执行的sql语句select osuser 电脑登录身份, program 发起请求的程序, username 登录系统的用户名, schemaname, b.cpu_time 花费cpu的时间, status, b.sql_text 执行的sql from v$session ...转载 2018-03-06 13:59:43 · 202 阅读 · 0 评论 -
Oracle -- 时间相关查询小结
1.第一天、最后一天select trunc(sysdate, 'YYYY') firstDay, add_months(trunc(sysdate, 'YYYY'), 12) - 1 lastDay from dual t;select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本...原创 2018-03-08 14:52:44 · 222 阅读 · 0 评论 -
Oracle-- 几种启动和关闭方式
一、Oracle数据库几种启动方式1、startup nomount 非安装启动,这种方式下启动可执行:重建控制文件、重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。2、startup mount (dbname) 安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做...转载 2018-03-08 13:42:12 · 3691 阅读 · 0 评论 -
Oracle --用户名密码过期的修改
1、查看用户的proifle是哪个,一般是default:SELECT username,PROFILE FROM dba_users;2、查看指定概要文件(如default)的密码有效期设置:SELECT * FROM dba_profiles s WHERE s.profile=\'DEFAULT\' AND resource_name=\'PASSWORD_LIFE_TIME\';3、将密码...转载 2018-03-08 13:31:08 · 670 阅读 · 0 评论 -
Oracle -- 复制数据
1、复制表结构以及数据create table x asselect * from y; --不会创建索引2、只复制表结构create table xas select * from y where 1=2;3、只复制数据(1)两个表结构一样insert into xselect * from y;(2)两个表的结构不一样,只复制部分列insert into x(col1x,col2x,...原创 2018-03-08 11:51:35 · 833 阅读 · 0 评论 -
Oacle -- 用connect by进行级联查询
connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点。 来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:id、name和parent_id。它们是具有父子关系的,最顶级的菜单对应的parent_id为0。现假设我们拥有如下记录:idnameparent_id1菜单0102菜单0203菜单0304菜单010115...转载 2018-02-28 12:30:30 · 189 阅读 · 0 评论 -
Oracle -- 标量子查询、表子查询、开窗函数
1.子查询子查询:SQL语句允许将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通表一样,被当做结果集的查询语句被称为子查询。子查询分2种:1)只返回一个单值的子查询,可看做是一个拥有返回值的函数。2)返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表。子查询分标量子查询、表子查询。标量子查询:子查询的返回值必须只有一行记录,而且只能有一个列。可以用在select语句...原创 2018-03-08 08:02:13 · 1728 阅读 · 0 评论 -
Oracle -- connect by rownum
对于connect by,现在大多数人已经很熟悉了connect by中的条件就表示了父子之间的连接关系比如 connect by id=prior pid但如果connect by中的条件没有表示记录之间的父子关系(如 connect by里没有 id=prior pid)那会出现什么情况?常见的,connect by会在构造序列的时候使用。select rownum from dual con...转载 2018-02-28 08:29:43 · 2153 阅读 · 2 评论 -
Oracle -- sys_connect_by_path
通过START WITH . . . CONNECT BY .. .子句来实现SQL的层次查询.自从Oracle 9i开始,可以通过SYS_CONNECT_BY_PATH函数实现将父节点到当前行内容以“path”或者层次元素列表的形式显示出来。自从Oracle 10g中,还有其他更多关于层次查询的新特性。例如,有的时候用户更关心的是每个层次分支中等级最低的内容。那么你就可以转载 2018-02-27 22:07:01 · 530 阅读 · 0 评论 -
Oracle -- CONNECT BY的几个例子
LEVEL是伪列,用来表示该条记录位于树形结构的第几层START WITH 代表你要开始遍历的的节点CONNECT BY PRIOR 是标示父子关系的对应SELECT last_name, employee_id, manager_id, LEVEL FROM employees START WITH employee_id = 100CONNECT BY PRIOR转载 2018-02-27 21:57:10 · 424 阅读 · 0 评论 -
Oracle -- oracle如何热备份(一定要理解归档模式和非归档模式!!)
最保险的的方式是物理冷备份,不要轻易试水!!以下是物理热备份:查询当前的模式selectname,log_mode from v$database;配置数据库的归档模式1.改变非归档模式到归档模式:1)SQL>conn / as sysdba (以DBA身份连接数据库)2)SQL>shutdown immediate; (立即关闭数据库)3)SQL>startup mount (...转载 2018-03-08 14:53:56 · 5263 阅读 · 0 评论 -
Oracle -- Oracle服务器端和客户端的配置
1.手动配置服务器端监听器:监听器配置包括监听协议、地址以及其他相关信息的参数。监听器配置存储在一个名称为listener.ora的配置文件中,该文件位于ORACLE_HOME\network\admin目录下。(ORACLE_HOME为Oracle软件的安装目录,后同。)Listener.ora配置文件中的内容如下(可以使用EditPlus等文档编辑工具打开):#LISTENER.ORA Net...转载 2018-03-08 15:32:46 · 7690 阅读 · 0 评论 -
Oracle -- 查询之最
1.逻辑读最多的SQLSELECT * FROM (SELECT buffer_gets, sql_text FROM v$sqlarea WHERE buffer_gets > 500000 ORDER BY buffer_gets DESC) WHERE ROWNUM <= 30;2.执行次数多的SQL SE...原创 2018-03-06 13:36:20 · 214 阅读 · 0 评论 -
Oracle -- 小结
1.1)v$sqltext:存储的是完整的SQL,SQL被分割v$sqlarea:存储的SQL和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息(统计)v$sql:内存共享SQL区域中已经解析的SQL语句。(即时)select opname, target, to_char(start_time, 'yyyy-mm-dd hh24:mi:ss') start_time, elapsed...原创 2018-03-06 13:01:47 · 216 阅读 · 0 评论 -
Oracle -- 查看所有表空间大小、剩余量、当前用户各表所占表空间
1.查看所有表空间大小、剩余量selectdbf.tablespace_name, dbf.totalspace "总量(M)", dbf.totalblocks as 总块数, dfs.freespace "剩余总量(M)", dfs.freeblocks "剩余块数", (dfs.freespace / dbf.totals...原创 2018-03-06 11:19:16 · 11516 阅读 · 1 评论 -
Oracle -- 问题解决
1.数据库取出一个 Count函数 统计的值报异常:java.math.BigDecimalcannot be cast to java.lang.String解决方案:将Count函数统计的值转换类型to_char(count()得到的数值)2.执行update卡住不动,但可以执行其他select语句现象:开发时到一条update时不继续执行,在plsql中也是显示正在执行,而且一直没有执行结果...原创 2018-03-06 08:55:26 · 153 阅读 · 0 评论 -
Oracle -- Oracle中几个数字函数、转换函数、字符串函数
一、数字函数数字型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,如:COS, COSH, EXP, LN,LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点1.trunc(n1[,n2])注:n2为正时,将小数点n2后的数去掉即可;n2为负时,将原创 2018-02-24 11:15:07 · 4719 阅读 · 0 评论 -
Oracle -- contains
看到contains(str1,str2)的介绍,感觉可能会用得着,先整理一下str2为一个单词时用单引号括起来如:SELECT ID,PERSONNM FROM USERS T WHERE CONTAINS(T.CD,'-');str2为一个词组时用双引号后再用单引号括起来,即'""'如:SELECT ID,PERSONNM FROM USERS T WHERE CONTAINS原创 2018-02-23 11:17:43 · 8243 阅读 · 0 评论 -
Oracle -- like、instr()、substr()
1.substr():从给定的字符表达式中返回一个子字符串。格式:substr(string,start_position[,nChar])注:start_position:开始截取的字符串的位置。nChar返回的字符数目。如start_position为负,则表示从右开始第start_position开始进行截取。如select substr('absdefg',1,3) sub f原创 2018-02-23 10:31:25 · 1161 阅读 · 0 评论 -
Oracle的注意事项
1.删除表drop table 表名:删除内容和定义,释放空间。truncate table 表名:删除内容,释放空间,但不删除定义。表被清空后,表和表的索引将重新设置成初始化大小。隐式提交,不能对truncate使用rollback命令。delete from 表名:删除内容,不删除定义,不释放空间。删除表中的数据是一行一行的删,并在事务日志中为删除的每行记录一项。释放空间的理解:delete删...原创 2018-03-09 11:04:15 · 800 阅读 · 1 评论 -
Oracle -- Oracle存储过程学习笔记
一 、存储过程语法1.基本语法 create or replace procedure 存储过程名称 (参数1 in number,参数2 in number ) is 变量1 integer := 0; 变量2 DATE; begin xxx; end 存储过程名称;2.select into 将select查询结果存入到变量中原创 2016-03-22 10:58:11 · 239 阅读 · 0 评论 -
Oracle -- Excel导入数据
第一种方法(数据量少)1.在excel中将列名及列的顺序保持与数据库表列名及顺序一致2.在excel中数据列的最前列增加一列空白列3.选择所有数据,复制所有数据,粘贴到在编辑状态(用for update或右键--edit)下的数据库表第二种方法(数据有些大)1.登录PL/SQL Developer2.在菜单栏中选择Tool --> ODBC Importer...3.C原创 2018-01-04 11:26:58 · 532 阅读 · 0 评论 -
Oracle -- left join查询结果不是左表的全部数据的解决方法
left join在实际应用中并不是查出数据都是左边的全部数据,为什么呢?看看自己的解决方法吧SELECT T.xx, T1.xx, ... FROM xxx T LEFT JOIN xxx T1 ON T.ID = T1.ID WHERE T.xx = xx and T1.xx= xx本来想查T表所有符合条件的数据,但是结原创 2018-01-08 11:31:33 · 15607 阅读 · 3 评论 -
Oracle -- rownum
最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查;看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候,我们就可以从先查一下奖品表中可以发的总奖品数,然后通过java的Random类在总奖品数内生成一个随机整数X,然后调用select * from (select rownum no,id from Table w...转载 2018-02-27 09:40:09 · 136 阅读 · 0 评论 -
Oracle -- 几个函数的随记
1.通过(+/-)对日期进行加减来实现时间向前向后推一个时间,如对SYSDATE的加减SYSDATE:2018/2/26 11:05:481)减1天SELECT SYSDATE - 1 N1 FROM DUAL;--2018/2/25 11:05:482)加1天SELECT SYSDATE + 1 N1 FROM DUAL;--2018/2/27 11:05:483)加1秒SELECT SYSDA...原创 2018-02-26 15:34:38 · 170 阅读 · 0 评论 -
Oracle -- 分组
如果按照时间段分组显示,首先要了解一下level,connectby,oracle时间的加减。1.levelselect level from dual connect by level 2.关于connect by可以看http://www.cnblogs.com/johnnyking39/articles/1155497.html3.Oracle时间的加减转载 2018-02-10 09:54:58 · 339 阅读 · 0 评论 -
Oracle -- sysdate的使用函数的方法
sysdate的使用函数的方法SYSDATE2018/2/8 14:38:52 TRUNC(SYSDATE)2018/2/8 TO_CHAR(SYSDATE,'YYYYMMDD')20180208到日TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS')转载 2018-02-08 16:27:24 · 15747 阅读 · 0 评论 -
Oracle -- 去年、今年、明年的表示
1.去年年初select add_months(trunc(sysdate,'yyyy'),-12) firstLastYear from dual;select to_char((trunc(sysdate,'yyyy')-1),'yyyymm') from dual;select to_char(add_months(trunc(sysdate,'yyyy'),-12),'yyyy-原创 2018-02-10 09:00:25 · 8984 阅读 · 0 评论 -
Oracle -- ORACLE系统表大全
Oracle系统表大全下面全面是对Oracle系统表的一些介绍:数据字典dict总是属于Oracle用户sys的。1.用户:select username from dba_users;改口令alter user spgroup identified by spgtest;2.表空间:select * from dba_data_files;转载 2018-02-10 15:58:07 · 15139 阅读 · 0 评论 -
Oracle -- DBA常用SQL
Oracle DBA常用SQL监控SQL1.监控事例的等待:select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*)from v$session_waitgroup by event order by 4;2.回滚段的争用情况:select转载 2018-02-10 16:10:18 · 1318 阅读 · 0 评论 -
Oracle -- oracle用户创建及权限设置
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> conn / as sysdba; SQL>create user username identifie转载 2018-02-10 16:04:41 · 212 阅读 · 0 评论 -
Oracle -- plsql常用函数汇总
1.在SQLPLUS下,实现中-英字符集转换alter session set nls_language='AMERICAN';alter session set nls_language='SIMPLIFIED CHINESE'; 2.运算符算术运算符:+-*/连接运算符:||比较运算符:>,>=,=,!=,<,<=逻辑运算符:not,and,or集合运算符:inter...原创 2018-02-10 15:44:22 · 1863 阅读 · 0 评论 -
Oracle -- cast
cast进行数据类型的转换。如SELECT CAST(TO_DATE('20180227114223','YYYY-MM-DD HH24:MI:SS') AS DATE) N1 FROM DUAL;--2018/2/27 11:42:23SELECT SYSDATE,CAST(SYSDATE AS TIMESTAMP WITH LOCAL TIME ZONE ) N2 FROM DUAL;--s...转载 2018-02-27 11:45:48 · 121 阅读 · 0 评论 -
Oracle -- 系统中常用的表和视图
◆dba_开头dba_users数据库用户信息dba_segments表段信息dba_extents数据区信息dba_objects数据库对象信息dba_tablespaces数据库表空间信息dba_data_files数据文件设置信息dba_temp_files临时数据文件信息dba_rollback_segs回滚段信息db转载 2018-02-27 14:22:06 · 365 阅读 · 0 评论 -
Oracle -- 转换格式、条件选择、备份/还原数据表
1.转换为特定格式(如转换为date类型)select to_date(to_char(sysdate,'yyyy/mm/dd'),'yyyy/mm/dd') from dual;2.条件选择语句:decodeselectt.STEMPLEMETEID, decode(t.stemplemetecode, 'TZSB', 'TZ检定提醒', 'JLSB,原创 2018-01-31 15:07:56 · 181 阅读 · 0 评论 -
Oracle -- 分析函数
MySQL中的derived table(r12...ORACLE利用STANDBY端RMAN备份...Oracle并行计算Oracle 12CR2 dbca -silent -...MySQL中的反连接(r12笔记第45...个人觉得这篇文章写的不错,讲的比较明白,初学很容易理解分析函数的作用和用法。转自:http://www.blogjava.net/liuyz2006/articles/37...转载 2018-02-08 11:52:06 · 330 阅读 · 0 评论 -
Oracle -- 需要另写函数的列转行
select * from table(string_split('8,12,14', ','))注:string_split()不是Oracle数据库自带的函数,可以写在function中,string_split('8,12,14',',')得到的是collection,如CREATE OR REPLACEFUNCTION string_split (p_str IN long, p转载 2018-02-27 16:13:58 · 217 阅读 · 0 评论 -
MYSQL、MSSQLServer、Oracle及DB2的取随机数
1.MYSQLrand()2.MSSQLServerrand()注:rand()还支持一个参数,这个参数为随机数种子,如rand(9527)3.Oracle没有内置的生成随机数的函数,但是提供了包dbms_random用来生成随机数select dbms_random.value from dual;除此之外,dbms_random包还提供了其他几种方法用来完成其他的随机处理dbms_random...原创 2018-03-07 11:28:13 · 591 阅读 · 0 评论 -
Oracle -- 几个函数汇总
1.select into2.insert into select 来源:http://blog.jobbole.com/94913/转载 2018-02-27 14:52:07 · 164 阅读 · 0 评论 -
Oracle -- 可能用到的语句
1.检查数据库文件的状态select file_name,status from dba_data_files;2.检查数据库定时作业的完成情况如果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查,那么可以用到如下的语句:select job,log_user,last_date,failures from dba_jobs;如果failure原创 2018-02-27 14:28:42 · 130 阅读 · 0 评论