随笔分类 - 2-2、Oracle
摘要:某云平台出现故障,sqlplus连接Oracle数据库,发现没有响应。数据库版本:12.1.0.2.0 查找、借鉴前人经验,成功处理此问题,参考网址:如何在数据库失去响应时转储状态信息 - Oracle Life - 云和恩墨,成就所托! http://www.eygle.com/archives/
阅读全文
摘要:Oracle 11g开始支持设置某张表为只读,这样可以防范对某些表的修改,起到一定的安全性。 设置如下: 当表需要进行更新、增删记录时,可以重新设置读写权限,对表进行修改操作后,再次设置为只读属性。 拓展:在某些特定情况下,可能需要某张表的记录只能增加,不能删除,这怎样实现呢? 一种可供参考的方法是
阅读全文
摘要:一、为何选择数据泵方式 相对于exp/imp方式,数据泵(expdp/impdp)更快,且能导出空表;相对于rman、dg等方式,数据泵操作更加简单。此外,在数据量不大、可停库的情况下,数据泵方式是可以保证数据的完整性的。 备注:exp/imp与expdp/impdp的区别 二、准备工作 若有必要,
阅读全文
摘要:一、锁表的处理 Oracle锁表比较简单,查询锁表的session杀掉就可以了。 1、以下几个为相关表 2、查看被锁的表 3、查看那个用户那个进程造成死锁 4、查看连接的进程 5、查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的ty
阅读全文
摘要:一、介绍 序列(Sequence),又叫序列生成器,用于提供一系列的数字,并不会与特定的表关联,开发人员一般用它填充主键和计数。每次访问序列,序列按照一定的规律增加或者减少。序列的定义存储在SYSTEM表空间中,序列不像表,它不会占用磁盘空间。序列独立于事务,每次事务的提交和回滚都不会影响序列。 二
阅读全文
摘要:一、Over()分析函数 说明:聚合函数(如sum()、max()等)可以计算基于组的某种聚合值,但是聚合函数对于某个组只能返回一行记录。若想对于某组返回多行记录,则需要使用分析函数。 1、rank()/dense_rank over(partition by ... order by ...) 说
阅读全文
摘要:一、介绍 1、dblink是什么? Database Link(dblink)是一个数据库中的模式对象,它允许用户访问另一个数据库中的对象。另一个数据库不需要是Oracle数据库系统。但是,要访问非Oracle系统,必须使用Oracle异构服务。 2、dblink有什么用 在创建dblink之后,用
阅读全文
摘要:问题情境之一的模拟: 执行脚本,报错:ORA-01427 单行子查询返回多个行 原因:查询时,要确保每个子查询只能返回一条数据, 注意: 1.针对这种情况,当表A,C关联时,尽可能将所有的关联条件都写上; 2.当报错的子查询有重复数据时,尝试用distinct、max()、分析函数(over()等)
阅读全文
摘要:Oracle 11G SQL 写好的脚本执行后报错:ORA 00972 标识符过长 可能的原因一: select 语句中的字段别名太长,中文字符别名最长为10个汉字,简化别名名称,问题得到解决。 可能的原因二: 字符集导致,这种情况下,可能会发现SQL语句没有任何语法、逻辑问题,但是用PL SQL执
阅读全文
摘要:一、介绍 1、定义 嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。 简单的说:就是把一个表中的字段定义为一个表,这个字段表的数据存储在外部的一个表中。嵌套表可以有效地代替多个表
阅读全文
摘要:ORA 01722: 无效数字 主要原因是: 1、对于两个类型不匹配(一个数字类型,一个非数字类型,同下)的值进行赋值操作; 2、两个类型不匹配的值进行比较操作(例如,“=”); 3、to_number函数中的值,非数字的,比如,to_number('a')肯定是不行的,to_number('123
阅读全文