在项目中一般需要对一些数据进行处理,以下提供一些基本的SQL语句:

1.基于条件的插入和修改:需要在表中插入一条记录,插入前根据key标识判断。如果标识符不存在,则插入新纪录,如果标识符存在,则根据语句中所给的新值对原纪录中的字段进行更新:

merge into A
using B
on (A.key = B.key)
when matched then
update set A.name = B.name
when not matched then
insert into (A.key, A.name) values (B.key, B.name)

2.在分组和集合里统计分组:当需要统计一个分组里的成员,或有多少个子分组,及其他基于集合的统计。在进行基于集合的统计时,还需要动态包括或剔除满足特定条件的记录。

实例如下:基于职工在企业里的升职次数,来统计企业每个员工经历过的工作岗位次数。

select jh.JobsHeld, count(*) as StaffCount
from (select u.employee_id, count(*) as JobsHeld
from (select employee_id
from hr.employees
union all
select employee_id from hr.job_history) u
group by u.employee_id) jh
group by jh.JogsHeld

3.根据时间戳恢复数据:

ALTER TABLE tablename ENABLE row movement ;
flashback table tablename to timestamp to_timestamp('2012-09-13 13:00:00','yyyy-mm-dd hh24:mi:ss');

4.有一个类型为字符串的字段,要讲其值迁移到新系统里的数值类型字段中:

create or replace function isnum(v_in varchar2) return varchar is
val_err exception;
pragma exception_init(val_err, -6502) --char to num conv.error
scrub_num number;
begin
scrub_num := to_number(v_in) return 'Y';
exception
when val_err then
return 'N';
end;

5.解决死锁问题:

(1).查看被锁的表
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id; (2).查看引起死锁的会话
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time; (3).杀掉死锁
alter system kill session ‘sid,serial#’;

6.查看当前连接用户正在运行的SQL语句:

select a.SID, a.USERNAME, b.SQL_TEXT
from v$session a, v$sqltext_with_newlines b
where a.SQL_ADDRESS = b.ADDRESS
and a.SQL_HASH_VALUE = b.HASH_VALUE
order by a.USERNAME, a.SID, b.piece

7.查询最消耗资源的实时语句:

oracle 11g中,可以通过查询V$SQL_MONITOR来监控SQL查询近乎实时的消耗资源
select * from (
select a.sid session_id,a.sql_id,a.status,a.cpu_time/1000000 cpu_sec,a.buffer_gets,a.disk_reads,b.sql_text sql_text
from v$sql_monitor a,v$sql_b
where a.sql_id=b.sql_id
order by a.cpu_time desc)
where rownum<=20;

Oracle常用的SQL方法总结的更多相关文章

  1. oracle常用查询sql

    oracle常用查询sql 原创 gordon陈 发布于2018-05-10 22:32:18 阅读数 297 收藏 展开 #!/bin/sh## create by Gordon Chen echo ...

  2. Oracle 常用的SQL语法和数据对象

    一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);  INSE ...

  3. oracle常用的SQL语句

    一些常用的SQL语句: --建表 create table adolph (id number(10,0),              name varchar2(20),              ...

  4. SpringBoot + MyBatis(注解版),常用的SQL方法

    一.新建项目及配置 1.1 新建一个SpringBoot项目,并在pom.xml下加入以下代码 <dependency> <groupId>org.mybatis.spring ...

  5. Oracle常用监控SQL

    1.监控事例的等待: select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(* ...

  6. Oracle 常用语句SQL

    查询Oracle 用户下面的所有表,表注释,行数 select t.TABLE_NAME, s.comments,t.NUM_ROWS  from user_tables t, user_tab_co ...

  7. oracle 常用select sql语句

    本人认为很实用的几条语句 1)select ... from ...into... 2)insert into ...select ... 3)select ...from ...left join ...

  8. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  9. ORACLE 常用SQL查询

    一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su  -  oracle a.启动ORACLE系统 oracle > sv ...

随机推荐

  1. 纯CSS3制作超级漂亮又实用的加载小图标

    先来一张各种效果的预览图,其实代码并不复杂,关键看自己如何运用. <!doctype html> <head> <meta charset="utf-8&quo ...

  2. Excel数据导入数据库的SQL快速生成

    =CONCATENATE("insert into table_name(id, code, name, remark) values (uuid(),'",B2,"', ...

  3. JDBC的连接和操作

    package Test; import java.sql.*; public class Test21 { public static void main(String[] args) { Conn ...

  4. asp.net 生成图形验证码(字母和数字混合)

    验证码技术是网站开发过程中比较重要的技术,可以防止非法人员利用注册机或者登陆工具来攻击我们的网站.下面是效果图: 具体实现方法如下: 1.主要思路是:引用Using System.Drawing命名空 ...

  5. 安装subversion

    安装subversion需要依赖apr.apr-util.sqlite 下载安装包,放在/usr/file目录 subversion-1.9.4.tar.gz apr-1.5.2.tar.gz apr ...

  6. HDFS 架构解析

    本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...

  7. 探索c#之函数创建和闭包

    阅读目录: 动态创建函数 匿名函数不足之处 理解c#中的闭包 闭包的优点 动态创建函数 大多数同学,都或多或少的使用过.回顾下c#中动态创建函数的进化: C# 1.0中: public delegat ...

  8. MySQL mysqldump数据导出详解

    介绍 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明 ...

  9. CSharpGL(0)一个易学易用的C#版OpenGL

    +BIT祝威+悄悄在此留下版了个权的信说: CSharpGL(0)一个易学易用的C#版OpenGL CSharpGL是我受到SharpGL的启发,在整理了SharpGL,GLM,SharpFont等开 ...

  10. TroubleShooting笔记--快照进程sp_replupdateschema和索引重建发生冲突

    今天早上服务器出现大面积的阻塞,上去排查blocking,最后大概确定的问题是: rebuild index job(243) --->blocked--->sp_replupdatesc ...