
oracle
Mr.madong
撒
展开
-
oracle—“操作记录已被里一个用户锁住” 解决办法
查询锁住sessionSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid;锁表释放sessionALTER system kill session '537, 52813';原创 2020-09-08 13:03:43 · 338 阅读 · 0 评论 -
oracle数据库数据表误删后,恢复数据处理方式
有两种方案解决此问题,具体操作:一:根据时间来恢复:1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;2、查询删除数据时间点之前的数据select * from 表名 as of timestamp to_timestamp(‘2016-08-11 16:12:11’,‘yyyy-mm-dd hh24:mi:ss’);(若转载 2020-08-20 10:32:28 · 359 阅读 · 0 评论 -
oracle查询表在库中所占空间(表名所有字母必须大写‘table_name’)
查询表在库中所占空间select sum(bytes)/1024/1024 'MB' from dba_segments where segment_name='table_name';原创 2018-08-29 17:19:25 · 668 阅读 · 0 评论 -
oracle语句优化积累
1、插入表时alter table table_name nologging;2、创建索引(不产生日志,开启并行)CREATE INDEX AAA_INDEX ON TABLE_NAME(colum) nologging parallel 6;3、用exit代替inSELECT COUNT(*) FROM TABLE_NAME1 c,TABLE_NAME2 b WHER...原创 2018-08-29 18:01:55 · 303 阅读 · 0 评论 -
drop、truncate和delete的区别
[ ] 删除机制上(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。(2)TRUNCATE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 表和索引所占空间。当表被TRUNCATE 后,这个表和...转载 2018-10-11 14:11:43 · 279 阅读 · 0 评论 -
ORACLE 两个表或两个结果集的数据对比常用的函数
假设有两个表A,B,都只有一个字段PHONE1,MINUSSELECT PHONE FROM A MINUS SELECT PHONE FROM B; 相当于用结果集A减去结果B得出的结果集。同样的效果也可以用SELECT PHONE FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.PHOEN=B.PHONE)来达到。2,INTERSE...原创 2018-09-27 13:36:45 · 5511 阅读 · 0 评论 -
oracle增量脚本(记录)创建触发器监控对一张表的增删改
删除表drop table test_1;drop table test_1_log;drop table A1;drop table B1;drop table C1;–创建测试表CREATE TABLE test_1(t_id NUMBER(4),t_name VARCHAR2(20),t_age NUMBER(2),t_sex CHAR);–创建记录测试表CRE...原创 2018-10-08 15:19:32 · 2034 阅读 · 0 评论 -
oracle中的new old 关键字
new 指的是新记录的指针old 指的是旧记录指针:new – 为一个引用最新的列值;:old – 为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;...原创 2018-10-08 15:21:25 · 1268 阅读 · 0 评论 -
oracle创建触发器
1.创建表create table t_user (id number(10),name varchar2(20) not null,phone_Number varchar2(20),email_Address varchar2(200) not null,home_Address varchar2(200) not null,constraint pk_user primary ...原创 2018-10-08 17:11:51 · 5755 阅读 · 0 评论 -
oracle利用正则表达式判断字符串只包含数字
select * from bb where regexp_like(id,’^+?[1-9][0-9]*$’);原创 2018-11-02 09:45:16 · 12259 阅读 · 2 评论 -
测试oracle中set arraysize xx对性能的影响
arraysize定义了一次返回到SQLPLUS客户端的行数,当扫描了arraysize 行后,停止扫描,返回数据,然后继续扫描。这个过程就是统计信息中的SQL*Net roundtrips to/from client。因为arraysize 默认是15行,那么就有一个问题,因为我们一个block中的记录数一般都会超过15行,所以如果按照15行扫描一次,那么每次扫描要多扫描一个数据块,一个数...原创 2018-12-13 14:35:56 · 1029 阅读 · 0 评论 -
oracle性能优化总结1
原则一:注意WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。尤其是“主键ID=?”这样的条件一定要写在语句的末尾。原则二: SELECT子句中避免使用 ‘ * ‘:ORACLE在解析的过程中,,会将’*’ 依次转换成所有的列名, 这个工作是...原创 2019-01-11 11:27:13 · 331 阅读 · 0 评论 -
oracle和db2之间的基本差别
Oracle 和 DB2的区别如下:1、取前N条记录Oracle:Select * from TableName where rownum <= N;DB2:Select * from TableName fetch first N rows only;2、取得系统日期Oracle:Select sysdate from dual;DB2:Select current times...原创 2019-01-21 17:14:11 · 2063 阅读 · 0 评论 -
恢复oracle中误删除delete的数据、drop掉的表
oracle误删除数据的恢复方法学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失。当我在工作中真正遇到这些问题时,我开始寻找答案。今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法。(不考虑全库备份和利用归档日志)删除表中数据有三种方法:·delete(删除一条记录)·drop或truncate删除表格...原创 2019-03-18 11:13:58 · 827 阅读 · 0 评论 -
数据迁移期间进程命令
ps 命令用于查看当前正在运行的进程。 grep 是搜索 例如: ps -ef | grep java 表示查看所有进程里CMD是java的进程信息 ps -aux | grep java -aux 显示所有状态ps -ef |grep **.sh杀死进程alter system kill session '6,4293';查看目录ls -...原创 2018-08-29 17:03:33 · 295 阅读 · 0 评论 -
oracle数据迁移过程中,把表中数据导出为txt文件的三种方法
在数据迁过程中需求需要将oracle数据库数据导出程txt格式然后再导入db2库中,经查询实验汇总三种方法: 1.plsqldev 里面有一个选项可以把表以excel格式到时2.使用spoolsqlplus / as sysdbaset linesize 1000set pagesize 0set echo offset termout offset heading of...原创 2018-08-31 15:07:05 · 6904 阅读 · 0 评论 -
数据库导出成txt文件
脚本原型:#!/bin/shclearecho "connect Database"echo "Please Enter UserName ->"|tr -d "\012" read _USERecho "Please Enter Password ->"|tr -d "\012" read _PWDmain(){sqlplus -s ${原创 2018-07-18 15:15:24 · 2748 阅读 · 0 评论 -
oracle中spool导出数据小结
对于SPOOL数据的SQL,最好要自己定义格式,然后根据自己的需求方便程序直接导入 如: select RECORD_ID||' '||CLAIM_ID||' '||CLAIM_CODE||' '||CLAIM_STATUS||' '||CAR_MARK||' '||VEHICLE_TYPE||' '||REPORT_NO||' '||CREATE_TIME||' '|...原创 2018-07-18 16:20:39 · 2943 阅读 · 0 评论 -
脚本中或者linux下使用iconv命令将utf_8和gbk以及gb2312的相互转换
1.转换gbk编码文件为utf-8编码文件iconv -f gbk -t utf-8 aa.txt > aa.bak其中-f指的是原始文件编码,-t是输出编码 aa.txtl是原始文件 aa.bak是输出结果文件iconv -c --verbose -f gbk -t utf-8 aa_gbk.html -o aa_utf8.html-c 指的是从输出中忽略无效的字...原创 2018-07-18 16:27:27 · 2839 阅读 · 0 评论 -
oracle的查询数据(检索数据)
一、简单查询 1.查询所有列:只包含select子句和from子句的查询(查询一个表的全部信息)例:SQL>select * from table_name;2.检索指定的列:用户可以查询指定的一列或者多列例:SQL>select colnum_name1,solnum_name2....from teable_name;3.带有表达式的的查询语...原创 2018-07-06 13:32:36 · 893 阅读 · 0 评论 -
oracle简单建库基本流程
建库流程 1、 登录到252服务器(我的服务器地址是172.20.223.252):SSH 172.20.223.2522、 切换到oracle数据库下:su – oracle3、 以sysdba权限登录到oracle数据库中:sqlplus /as sysdba4、 通过本地自动化管理方式创建一个大小为100m的表空间one,扩展大小自动管理Create...原创 2018-07-06 13:40:33 · 16570 阅读 · 0 评论 -
在大量数据迁移期间oracle学习笔记
在数据迁移期间oracle学习笔记0主键(自增) 2用户代码 3区域代码 4承保公司代码 1理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态* ...原创 2018-07-13 14:14:54 · 1339 阅读 · 0 评论 -
oracle去除表中字段中特殊符号('tab','空格','换行符','回车')——目前没找到可以一次性替换表中所有异常数据的方法,只能对字段逐一去除,如果有还希望留言赐教
//去掉空格update T_THIRD_SURVEY_PERSON SET CHECK_DES = trim(replace(CHECK_DES,' ',','));//去掉换行符update T_THIRD_SURVEY_PERSON set CHECK_DES=replace(CHECK_DES,chr(10),',');//去掉回车update T_THIRD_...原创 2018-07-26 16:37:20 · 7247 阅读 · 0 评论 -
oracle中least()和greastest()函数的使用,其中还包含一些if...then..elseif的使用
最小值least()函数 情景设定: 从三张表中取出各自的最小时间,比较这三个时间,再取出最小值(其时间可能为null);--三个表中各自取出其最小值select min(v.CHECK_START_TIME) into v_check_v from t_third_survey_vehicle v where v.claim_id = v_claim_data.claim_id;...原创 2018-07-30 17:00:23 · 745 阅读 · 0 评论 -
oracle字符查找函数instr()
1、instr()函数的格式 (俗称:字符查找函数)格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串)instr(v_zh_claim_stutas_pro,'c')>0//v_zh_claim_stutas_pro→string1,'c'→string2格式二:instr( string1, string2 [...原创 2018-07-30 17:14:03 · 13291 阅读 · 0 评论 -
快速向表中插入大量数据Oracle中append与Nologgin的作用
当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最好的解决办法是用insert, 并且将表设置为nologging;当把表设为nologging后,并且使用的insert时,速度是最快的,这个时候oracle只会生成最低限度的必须的redo log,而没有一点undo信息。如果有可能将index也...转载 2018-08-06 10:59:34 · 1249 阅读 · 0 评论 -
oracle大数据量迁移,分批量导入样例(fetch...bulk collect)以及forall结合使用
//插入时不产生日志,alter table IALHospitalInfo nologging;//记录时间set timing on;declare CURSOR cur is select nvl(c.claim_code,c.claim_id) as claim_code, case when (se...原创 2018-08-13 16:37:53 · 1203 阅读 · 0 评论 -
原 oracle执行update一直处于执行中,跟卡住一样
问题:在数据迁移过程中,遇到大量对表中异常数据进行处理的操作,比如:字段中包括tab、换行符、或者回车符号,这时需要对字段进行update操作,同时就出现update死锁的情况原因和解决方法这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,orac...原创 2018-08-31 09:29:21 · 9462 阅读 · 0 评论 -
oracle登录总结
1、安装好oracle服务之后,登录会遇到问题 正确的登录方式:以sys身份登录C:\Users>sqlplus 请输入用户名:sys 输入口令:123456 as sysdba; 或者 C:\Users>sqlplus sys/123456 as sysdba; 这里的sys大概是系统管理员的意思,123456是初始建数据库时设置的密码。2.以scott身...原创 2018-06-22 09:19:36 · 261 阅读 · 0 评论