解析Oracle查询和删除JOB的SQL

查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select   peopleId from people group by   peopleId   having count(peopleId) > 1)
and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)
注:rowid为oracle自带不用该.....
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
 
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) from A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) from A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch ......

时间: 2013-07-01

在SQL Server和Oracle中创建job

首先说下ms server,因为我也是新手,所以首先选择了使用企业管理器进行任务设定,然后再导出设计完毕的任务脚本,这样就可以在其他数据库中直接通过执行脚本的形式来新建任务了(需要适当修改其中的一些任务名称和数据库名称等值),下面说下具体的操作步骤以及获得的任务脚本: 1. 保证启动ms server的"SQL Server代理服务"(即agent service) 2. 打开企业管理器 -> 连接数据服务器 -> 右键"SQL Server agent"

oracle 会话 死锁 执行sql 执行job的方法

//根据用户分组会话 select t.USERNAME,count(*) from v$session t group by t.USERNAME //查找某一用户正在执行的sql_id值 select * from v$session t where t.USERNAME = 'BUDGET' and t.SQL_ID is not null //查找对应sql_id的对应sql语句 select m.SQL_TEXT from v$session t , v$sqlarea m where

Oracle Job时间间隔设置

初始化相关参数job_queue_processes alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位 job_queue_process 表示oracle能够并发的job的数量,可以通过语句 show parameter job_queue_process; select * from v$parameter where name=

oracle初始化参数设置

正在看的ORACLE教程是:oracle初始化参数设置.ALTER DATABASE DATAFILE'd:ORANTDATABASEUSER1ORCL.ORA' RESIZE 1000M;CREATE TABLESPACE INDEX_DATA DATAFILE'd:ORANTDATABASEINDEX_DATA' SIZE 500M;ALTER DATABASE DATAFILE'd:ORANTDATABASERBS1ORCL.ORA' RESIZE 300M;ALTER DATABASE

window中oracle环境变量设置方法分享

window server中Oracle的环境变量设置 1.右击"我的电脑"->选择"属性"->选择"高级"->单击"环境变量"2.选择"Path"这一行,单击"编辑",在"Path"的变量值文本框的最后面先加入一个分号":",然后再分号后面加入sqlplus文件的目录路径,如"C:\Program Files\orac

Oracle 监听器密码设置方法(LISTENER)

监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接.在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理.也容易导致数据库受到损坏. 1. 未设定密码情形下停止监听 [oracle@test ~]$ lsnrctl stop listener_demo92 -->停止监听,可以看出不需要任何密码即可停止 LSNRCTL fo

Oracle客户端 NLS_LANG 的设置方法

Oracle客户端NLS_LANG设置 OracleWindowsMicrosoftUnixBash 1. NLS_LANG 参数组成 NLS_LANG参数由以下部分组成: NLS_LANG=<Language>_<Territory>.<Clients Characterset> NLS_LANG各部分含义如下: LANGUAGE指定: -Oracle消息使用的语言 -日期中月份和日显示 TERRITORY指定 -货币和数字格式 -地区和计算星期及日期的习惯 CHAR

Oracle数据库TNS常见错误的解决方法汇总

TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

CentOS 6.4下安装Oracle 11gR2详细步骤(多图)

安装前须知: 内存(RAM)的最小要求是 1GB,建议 2GB 及以上.虚拟内存 swap 建议:内存为 1GB~2GB 时建议swap大小为内存大小的 1.5 倍:内存为 2GB~16GB 时建议swap大小为内存的大小:内存超过 16GB 时swap保持16GB.要求临时文件目录,如 /tmp 的磁盘空间至少 1GB.磁盘空间要求:企业版为4.35GB的安装空间和1.7GB以上的数据文件空间:标准版为4.22GB的安装空间和1.5GB以上的数据文件空间.需要 X window 图形界面.需要

如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)

oracle 服务器  版本  11.2.0.1.0 Sqlserver2008  R2 前提条件是 SQLSERVER服务器上安装了Oracle客户端并且进行了配置 不会配置的请参照 这个链接 1  登录MSSM 工具 2 选中其中一个数据库  右键⇒任务⇒导入数据 3   打开窗口 Sqlserver导入和导出向导   点击下一步 4 进入选择数据源画面 a: 数据源 选择  Microsoft OLE DB Provider for Oracle  然后 点击 右侧的 属性 按钮 5  数

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在

Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?

朋友问: 有个学校oracle数据库的编码是GBK,而且库里边已经有很多生产数据了,现在想改成UTF8的,如果执行了这步操作,会出现哪些问题? 我的回答: 因为utf8的库中文占3个byte,gbk占2个byte,所以会出现客户端乱码. 比较稳妥的方案是,再搭建一个oracle环境,设置成utf8编码,把旧的oracle数据迁移到新的utf8编码的oracle库中的环境. oracle群里面peter的回答: 官方的方法是新建一个utf8的库再导入. 直接改内部视图的办法是错的,从不这样用,也不