Oracle
文章平均质量分 74
D2cOneluo
擅长数据库操作、linux脚本,先后接触使用过包括tdh、hadoop、hive、oracle、elk、db2在内的分布式、关系式多种数据库。常年混迹于各银行做ETL,数据分析工作,拥有无数写bug删库经验,最擅长脚本 rm -rf /*
展开
-
Oracle中dba,user,v$等开头的常用表和视图
Oracle中dba,user,v$等开头的常用表和视图功能很强大,但是作为一个面向程序的程序猿来说可能很多表都并不了解或者遇见了也不知道是做什么用的,该文档主要用来供各位参考,以便更好的使用Oracle,有错误、缺失的地方欢迎指正。1 Oracle常用表1.1 dba_开头表1.2 user_开头表1.3 v$_开头表1.4 all_开头表1.5 session_开头表1.6 index_开头表以下仅包含部分表及视图。1 Oracle常用表1.1 dba_开头表表名注释dba_原创 2022-02-26 11:48:24 · 2162 阅读 · 1 评论 -
【死锁释放】Oracle存储过程(函数)死锁释放
死锁释放1、技术场景2、原因3、解决办法4、代码实现1、技术场景 存储过程(函数)1执行过程中,关闭或者中断存储过程,有时重新编译时等待时间很长。2、原因 其原因跟表死锁类似,有其他进程占用了该存储过程。3、解决办法 解决办法跟表死锁一样,解锁即可。4原创 2022-02-26 10:41:15 · 1725 阅读 · 0 评论 -
Oracle索引详解
Oracle索引一、索引介绍1、什么是索引?2、使用索引的目的二、索引的分类及结构1、逻辑上:2、物理上:三、各种索引详解1、 B树索引(1)特点:(2)技巧:2、位图索引(1)特点:(2)技巧:3、 反向索引(1)特点:(2)技巧:4、HASH索引(1)特点:5、函数索引6、分区索引和全局索引7、域索引 Domain四、怎样建立索引1、普通索引2、唯一索引 Oracle 自动在表的主键上创建唯一索引3、位图索引4、组合索引5、基于函数索引6、反向键索引7.重置索引8.删除索引五、索引失效细节1.使用不等于原创 2021-08-11 17:33:43 · 23191 阅读 · 9 评论 -
Oracle数据字典使用
一、数据字典数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。oracle中、sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,任何用户都无权更改sys模式下的模式对象或数据字典中的行。也原创 2021-08-10 15:03:30 · 641 阅读 · 1 评论 -
ORACLE drop table 和 purge 和 flashback
删库必备技能)DROP TABLEFLASHBACK TABLEPURGEDROP TABLE ... PURGE操作 Oracle 时,经常会删除一个表,当删除错误后,希望能够恢复该表,有时也希望删除表之后能够立刻释放表的空间。通过 purge 的使用可以在 Oracle 中删除表、恢复表和空间释放。DROP TABLE当在 Oracle 中删除drop一个表时,数据库不会立刻释放表的空间,而是重命名这个表然后将其放入回收站,可以通过以下方式查询:SQL> SELECT object_na原创 2021-05-22 16:53:08 · 729 阅读 · 3 评论 -
oracle sqlplus/command 环境执行存储过程
存储过程调用入参+出参出参别问我为什么不用test调用,太low(其实是某些场景根本不给你使用plsql)入参+出参存储过程示例CREATE OR REPLACE PROCEDURE proc_lee_in_out_parameter(in_parameter IN VARCHAR2,out_parameter OUT VARCHAR2) ASBEGINout_parameter:='0'; EXCEPTION --异常 WHEN OTHERS THEN RO原创 2021-06-08 11:15:34 · 1053 阅读 · 0 评论 -
数据库操作常用技巧
随时更新1、不要用聊天工具发sql语句2.操作数据之前先select一下3.操作数据之前注意量级4.update时更新修改人和修改时间5.多用逻辑删除,少用物理删除6.操作数据之前先做备份7.表名前面一定要带库名8.新加字段一定要注意非空或者主键限制无论是开发、测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段、添加数据、更新数据、删除数据、查询数据等等。正常情况下还好,但如果操作数据库时出现失误,比如:删除订单数据时where条件写错了,导致多删了很多用户订单。更新会员原创 2021-03-24 16:24:56 · 598 阅读 · 2 评论 -
expdp数据泵全库导出和导入dmp包
expdp数据泵全库导出和导入1、创建文件导出路径(有必要的话就进行附权)2、切换oracle用户,导出dmp包1)全库导出2)导出指定表3、在新库上创建目录4、将数据拿到需要导入的数据库环境5、dmp导入1)全库导入2)导入指定表1、创建文件导出路径(有必要的话就进行附权)create directory expdp as '/u01/expdp'; grant read,write on directory expdp to system;2、切换oracle用户,导出dmp包1)全库导出原创 2020-12-17 16:23:39 · 3180 阅读 · 0 评论 -
Oracle递归详解
start with ...connect by prior 函数详解1、描述:2、语法:3、数据:建表语句:数据:4、案例:1、查询`1000`节点儿子节点2、查询`1200`节点所有子节点3、查找`1260`节点所有上级节点4、查询`1260`节点的簇兄弟(在同一层级)5、查询递归路径6、查询节点是否为叶节点(叶节点为1,非叶节点为0)1、描述:start with...connect by prior用于实现递归查询树形结构。如果不好理解proir的向上向下,就记住如果想往上遍历就把上级节点放在p原创 2020-12-08 16:04:58 · 4223 阅读 · 0 评论 -
etl Oracle、linux常用命令记录
Oracle常用命令记录1、表空间以及剩余大小使用率统计。1、表空间以及剩余大小使用率统计。SELECT a.tablespace_name AS "表空间名",total "表空间大小",free "表空间剩余大小",(total - free) "表空间使用大小",total / (1024 * 1024 * 1024) "表空间大小(G)",free / (1024 * 1024 * 1024) "表空间剩余大小(G)",(total - free) / (1024 * 1024 *原创 2020-11-07 14:13:28 · 260 阅读 · 0 评论 -
oracle删除数据库表空间信息报错 ORA-01116、ORA-01110、ORA-27041
oracle19c业务场景:删除TS_IND_ICRM表空间查看,表空间存在。SQL> select * from dba_data_files WHERE UPPER(tablespace_name) = 'TS_IND_ICRM';FILE_NAME FILE_ID TABLESPACE_NAME BYT原创 2020-08-28 17:13:06 · 2220 阅读 · 0 评论 -
ORACLE 错误解释
随时修正、补充ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-00023: 会话引用进程私用内存;无法分离会话ORA-00024: 单一进程模式下不允许从原创 2020-08-27 16:56:39 · 1499 阅读 · 0 评论 -
Oracle 格式化spool
oralce格式化导出内容(暂未用到,后期补充详细用法)#格式化spoolset echo off;set heading off;set feedback off;set pagesize 0;set verify off;set trimspool on;set flush off;set tab off;set linesize 10000;set termout off;set trimout on;set colsep '|';set arraysize 201;原创 2020-08-18 16:51:18 · 185 阅读 · 0 评论 -
DML、DDL、DCL的区别
DML、DDL、DCL的区别:导语DMLDDLDCL导语以下为基于Oracle使用的个人理解,与官方可能解释可能存在出入,欢迎指正。DMLDML(data manipulation language)数据操纵语言: 就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。--查询SELECT col_a from tab_a ; --插入insert into tab_a select * from tab_b;原创 2020-08-12 10:51:13 · 251 阅读 · 0 评论 -
压缩碎片收缩高水位
业务场景:一张常用的经常ddl的表有一天突然发现count不动了。先后排除内存、死锁、会话占用、排队等多个问题之后,考虑到可能是高水位(High-warter mark, HWM)问题。在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就原创 2020-06-20 09:14:12 · 235 阅读 · 0 评论 -
TDH备份存储过程、日志包范本
以下为个人备份存储过程、日志包范本,无实际学习概念,别浪费时间看了。1、建表语句drop table if exists lee_joblog;create table lee_joblog( proname string default null ,tabname string default null ,step string default null ,accdate string default null ,status string原创 2020-06-19 16:16:26 · 694 阅读 · 0 评论 -
sql函数记录
分析函数 NTILESELECT a, NTILE(10) OVER (ORDER BY a ) FROM lee;效果如下:原创 2020-05-14 11:26:45 · 325 阅读 · 0 评论 -
动态客户评级
业务场景:1、客户通过资产日均进行评级2、评级标准可通过前台进行修改3、评级标准区间可通过前台控制变化(<,<=,>,>=)实施思路:(欢迎大佬提供更优意见)通过for循环遍历前台控制的参数表,将区间数字和区间符号取出作为变量与资产进行判断。缺点:假设存在10个分区区间,500W客户,则出现的计算数据为 10 * 500W,运算数据基数将成倍增长。以下为实施代...原创 2020-03-10 09:32:49 · 258 阅读 · 0 评论 -
提升sql效率
持续更改1、避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,而是使用union all实现SELECT * FROM SCOTT.emp WHERE job = 'SALESMAN' OR sal>1000;使用UNION ALL 来代替SELECT * FROM ...原创 2019-11-21 21:45:40 · 163 阅读 · 0 评论 -
使用for循环给历史分区表循环导入数据
场景:时间分区表导入历史数据考虑写for循环读日期数据赋值给变量做分区--源数据表create table table_lee_h(column_a varchar2(8), column_b varchar2(8), column_date varchar2(8)) ...原创 2019-11-21 21:27:10 · 494 阅读 · 0 评论 -
ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序“ 解决方案
报错场景:使用调度的时候出现作业一直显示在运行,数据库日志显示成功,调度数据库显示正在运行,tomcat log日志显示 ORA-125160登陆pl/sql 发现登录不了,报错根本原因就是因为oracle的process和session已经达到甚至超过最大值了(不局限于pc机登陆的台数,pl/sql 新增一个运行窗口也会增加),接下来就详细说明一下解决方案。查看procress&...原创 2019-11-06 10:22:23 · 841 阅读 · 0 评论 -
Oracle sqlldr命令和ctl控制文件
oracle sqldrl命令与以及ctl文件具体操作如下:第一步:先编辑好数据控制文件 xx.ctl,如lee.ctloptions(skip=1) --跳过第一行(看实际情况)load data CHARACTERSET ZHS16GBK --转码truncate --将表数据清空插入数据,此外还有insert、replace、append方式into table lee ...原创 2019-10-21 16:20:52 · 18445 阅读 · 7 评论 -
Oracle卸数字段超长 field in data file exceeds maximum length
建表:create table lee(lee VARCHAR(2000));使用sqlldr导数时出现如下错误:" Record 1: Rejected - Error on table PC_PLANNAME, column PLANNAME.Field in data file exceeds maximum length "上网查了一下找到原因了。原来表中定义的字段 l...原创 2019-10-21 16:06:11 · 592 阅读 · 0 评论 -
Oracle开启并行
什么是并行并行是Oracle为了提高大数据量的运算效率而提供多进程协作技术,它可以让多个CPU同时处理一个计算任务,充分使用系统资源,提高计算效率。什么操作支持并行大部分的DML(insert/update/delete/merge)、DDL、Query都支持并行操作。什么情况下需要启用并行并不是所有的SQL都应该使用并行。要使用并行需满足以下两个条件,否则结果可能适得其反:1) 机器...原创 2019-08-08 15:26:52 · 1695 阅读 · 0 评论 -
oracle 卸载
1、停用oracle服务:控制台执行 serveces.msc,找到oracle开头的所有服务,右击选择停止2、在开始菜单中,找到Universal Installer,运行Oracle Universal Installer,单击卸载产品3、在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除。返回删除OraDb11g_home14、按Windows...原创 2019-08-07 10:10:06 · 118 阅读 · 0 评论 -
Oracle dblink查询
方法一:pl/sql 对象窗口找到 database_link >右键>新建方法二:通过sql实现CREATE DATABASE LINK database_link_test --数据库别名CONNECT TO user IDENTIFIED BY userpwd --分别对应用户名和密码USING '192.168.0.27:1500/orcl' --域名:端口号/...原创 2019-08-21 09:40:09 · 13282 阅读 · 0 评论 -
oracle 优化之parallel和append
并发parallel和append/+append/ 注意事项1.在非归档模式中 nologing和 logging 都不会产生大量的redo日志,但是在归档模式中如果是logging 表会产生大量的redo日志 但是nologging表就不会产生.(建议在归档模式中大量插入数据的时候先把表改成nologging模式’’ALTER TABLE table_name NOLOGGING然后...原创 2019-08-12 16:37:31 · 2249 阅读 · 0 评论 -
oracle ORA-12545:因目标主机或对象不存在
一、服务未启动1、打开计算机右击,选择管理2、找到里面的服务和应用程序,打开服务3、找到:OracleOraDb11g_home1TNSListenerOracleServiceORCL启动这两个数据服务数据服务启动完毕之后,重新进行一次连接二、计算机本地的名称进行了改动1、打开app→账户→product→11.1.0→db_1|db_2→NETWORK→ADMIN找到lis...原创 2019-08-26 11:18:41 · 1673 阅读 · 0 评论 -
Oracle 常用必知必会操作
– 1 查询正在执行的sql语句select b.sid, b.username, b.serial#, a.spid, b.paddr, c.sql_text, b.machinefrom v$process a, v$session b, v$sqlarea cwhere a.addr = b.paddr– 2 据sid与serial# kill 需要中止的sql语命令窗口执行a...转载 2019-09-02 13:31:16 · 667 阅读 · 0 评论 -
Oracle 表主键 sys_guid()
今天偶然间才发现的一个表主键,之前一直是在用sequence,记录一下。SYS_GUID (),是Oracle 8i 后提供的函数。SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)1、插入时使用create table lee(id raw(16) pr...原创 2019-09-26 13:31:50 · 1554 阅读 · 0 评论 -
PLSQL Developer建表时comment中文乱码的解决方案
修改pl/sql developer 的编码格式:在windows中创 建一个名为“ NLS_LANG ”的系统环境变量,设置其值为“ SIMPLIFIED CHINESE_CHINA.ZHS16GBK ”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“ NLS_LANG ”为 “ AMERICAN_AMERICA....原创 2019-08-08 10:35:52 · 3019 阅读 · 0 评论