![](https://img-blog.csdnimg.cn/417eb601799b4771a0c938c65f72ee81.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Oracle
日常记录分享
Terence全栈开发
资深JAVA开发工程师、CSDN全栈领域优质创作者、阿里云开发者社区专家博主,热爱技术,喜欢思考,乐于分享
展开
-
Oracle删除重复数据只留一条
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING CO原创 2022-02-12 12:34:37 · 49071 阅读 · 0 评论 -
ORA-01779: 无法修改与非键值保存表对应的列
问题描述错误报告 -SQL 错误: ORA-01779: 无法修改与非键值保存表对应的列01779. 00000 - "cannot modify a column which maps to a non key-preserved table"*Cause: An attempt was made to insert or update columns of a join view which map to a non-key-preserved table....原创 2022-02-12 11:57:44 · 52195 阅读 · 0 评论 -
ORACLE两表关联更新三种方式
update mag_or_dept_info t1 set (province, city, county) = (select province, city, county from mag_ar_organ_dept t2 where t1.dept_code = t2.organ_id and rownum = 1) where exists (select 1 from mag_ar_organ_dept t2 .原创 2022-02-12 12:07:49 · 54017 阅读 · 0 评论 -
oracle命令行导出
exp 用户名/密码@IP:端口/实例名 tables=表名 file=路径\文件名.dmp原创 2022-01-20 10:59:59 · 58848 阅读 · 0 评论 -
解决Oracle锁表
1、执行以下语句可查询被锁的表select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_object a,dba_objects bwhere b.object_id = a.object_id;2、执行以下语句可查询被锁的session和serialselect b.username,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session .原创 2022-01-05 22:38:39 · 72309 阅读 · 0 评论 -
oracle保留小数位数
公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2) ),只是格式不是很工整,对格式要求不严谨的情况下使用round即可公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2) ),只是格式不是很工整,对格式要求不严谨的情况下使用round即可.个人认为比较方便的一种select decode(n_jg,0,'0.00',trim(to_char(n_jg,'999原创 2022-01-19 22:37:28 · 61992 阅读 · 0 评论 -
oracle查询表 索引、唯一约束、字段
查询表的索引情况select t.Index_Name,t.table_name,t.column_name,i.tablespace_name,i.uniqueness from user_ind_columns t,user_indexes i where t.index_name=i.index_name and t.table_name=i.table_name and t.table_name='大写表名:这里不支持小写表名';1、查找表的所有索引(包括索引名,类型,构成列):se原创 2022-02-12 11:21:05 · 48329 阅读 · 0 评论 -
oracle错误代码大全(超详细)
本篇文章是对oracle错误代码进行了详细的总结与分析,需要的朋友参考下ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-00023: 会话引用进程私用内存;无法分离会话ORA-00024: 单一进程模式下不允许从多个原创 2022-01-19 14:46:34 · 62268 阅读 · 3 评论 -
oracle添加唯一约束
1 目标用演示样例演示怎样创建、删除、禁用和使用唯一性约束2 什么是唯一性约束?唯一性约束指表中一个字段或者多个字段联合起来可以唯一标识一条记录的约束。联合字段中,可以包括空值。注:在Oracle中,唯一性约束最多能够有32列。唯一性约束能够在创建表时或使用ALTER TABLE语句创建。3 唯一性约束和主键的差别主键(Primary Key):全部组成主键的列都不能包括空值。 唯一性约束(Unique Constraint):假设唯一性约束由多列组成,当中的部分列原创 2022-01-19 14:41:50 · 63814 阅读 · 0 评论 -
Oracle日期函数
Oracle日期类型函数是操作日期、时间类型的相关数据,返回日期时间类型或数字类型结果,常用的函数有:SYSDATE()、ADD_MONTHS()、LAST_DAY()、TRUNC()、ROUND()等等。系统日期、时间函数:SYSDATE函数:该函数没有参数,可以得到系统的当前时间。案例代码:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;结果:SYSTIMESTAMP函数:该函数没有参数,可以得到系统的当.原创 2022-01-19 01:53:55 · 65371 阅读 · 0 评论 -
oracle补位函数 不足位数补0
不足位数补位的函数:1. 左补位函数LPAD(原始字符,填充后长度,填充字符)2. 右补位函数RPAD(原始字符,填充后长度,填充字符)如运行select lpad('123',6,0) col1 from dual;结果select rpad('123',6,0) col1 from dual;结果...原创 2022-01-19 01:36:40 · 64036 阅读 · 0 评论 -
oracle中查看一张表是否有主键,主键在哪个字段上
1. 利用Oracle中系统自带的两个视图可以实现查看表中主键信息,语句如下:select a.constraint_name, a.column_namefrom user_cons_columns a, user_constraints bwhere a.constraint_name = b.constraint_nameand b.constraint_type = 'P' and a.table_name = '大写的表名'查看表的主键约束名称,以及主键约束的字段名称。...原创 2022-01-10 17:12:48 · 80331 阅读 · 0 评论 -
ORACLE ORDER BY的多种排序
1. 按单个字段排序升序:ORDER BY ASC(默认)降序:ORDER BY DESC以指定的次序返回查询结果实际提取数据或生成报表时,一般都要根据一定的顺序查看,比如,想查看单位所雇员工的信息。SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY hiredate ASC;给查询结果排序这种语句很多人都会写,但除了“ORDER BY hiredate ASC”这种写法外,还可以写成“ ORDER原创 2022-01-06 00:23:24 · 85791 阅读 · 0 评论 -
ORACLE分配DBA权限
举例,我的用户名为terence1. 赋予DBA权限grant dba to terence;2. 解除DBA权限是:revoke dba from terence;原创 2022-01-05 23:11:43 · 74267 阅读 · 0 评论 -
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
Case具有两种格式。简单Case函数和Case搜索函数。--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END ...原创 2022-01-05 22:33:32 · 72679 阅读 · 0 评论 -
ORACLE通过对照表快速建view
以terence用户下的表为例,对照表建立如下DROP TABLE CONTRAST_TABLE PURGE;CREATE TABLE CONTRAST_TABLE AS SELECT table_name, 'N_' || table_name AS new_tbl_name, column_name, 'new_' || column_name AS new_col_name FROM all_tab_cols WHERE owner = 'T原创 2022-01-05 22:26:21 · 71892 阅读 · 0 评论 -
ORACLE控制处理函数COALESCE()和NVL()
1. 语法COALESCE ( expression,value1,value2……,valuen)2.说明主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。原创 2022-01-05 22:20:40 · 74711 阅读 · 0 评论 -
ORACLE找出最大的数返回 GREATEST()函数
1. 语法GREATEST(expr_1, expr_2, ...expr_n)2.说明GREATEST(expr_1, expr_2, ...expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, ... expr_n等中找出最大的数返回。在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。3.允许使用的位置过程性语句和SQL语句。4. 示例4.1 示例一【数值】expr_1为数值型。按大小进行比较。原创 2022-01-05 22:18:24 · 74034 阅读 · 0 评论 -
ORACLE 字符串替换函数 REPLACE()
REPLACE()用法:replace(原字段,“原字段旧内容“,“原字段新内容“,)例如:SELECT REPLACE('abcde','a',NULL) AS str FROM dual;--bcde原创 2022-01-05 22:15:57 · 72974 阅读 · 0 评论 -
oracle 创建emp表,dept表
废话不多说 直接上SQL/*创建empz表*/CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7, 2),DEPTNO NUMBER(2));/*emp表添加数据*/INSERT INTO EMP VALUES (7369, 'SMITH', 'CLE..原创 2022-01-05 21:42:21 · 74766 阅读 · 2 评论 -
ORACLE通配符转义
参考如下小Demo1. 先建立如下VIEWCREATE OR REPLACE VIEW V AS SELECT 'ABCEDF' As vname FRoM dual UNION ALL SELECT '_BCEFG' AS vname FROM dual UNION ALL SELECT '_BCEDF' As vname FRoM dual UNION ALL SELECT '_\BCEDF' AS vname FROM dual UNION ALL SELECT 'XY原创 2022-01-05 22:05:51 · 71645 阅读 · 0 评论 -
Oracle没有WM_CONCAT函数的解决办法
解决ORA-00904: "WMSYS"."WM_CONCAT"WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数,需要手工加上。1、下载根据下方链接下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plbhttps://download.csdn.net/download/qq_39997939/741429102、执行用sqlplus登录,执行下载的脚本sqlplus / as sysdba原创 2022-01-05 21:18:44 · 71598 阅读 · 0 评论 -
Oracle下查看索引的语句
1. 查询一张表里面索引select * from user_indexes where table_name=upper('表名'); 2. 查询被索引字段select * from user_ind_columns where index_name=('索引名称'); 3. 给某一字段创建索引create index 索引名 on 表名(字段);...原创 2021-12-13 18:32:31 · 91641 阅读 · 0 评论