ORACLE
紫薯馍馍
代码是程序员的朋友,虽然没有热情,但是非常忠实
展开
-
oralce 处理列转行的三种方式 最后生成表格样式数据
oralce 处理列转行的三种方式 最后生成表格样式数据原创 2022-06-08 15:47:40 · 967 阅读 · 1 评论 -
mysql/oracle 以唯一时间为分界,小于等于该时间求和,大于该时间求和
【背景】 项目需要把上百个乡镇的用户数进行分组统计,本次分类以每个乡镇大批量用户割接时间为分界线,统计上线前和上线后的用户发展情况,如下图,就需要统计 小于等4月18日的数据和之后日期的所有数据,以前没遇到过类似的问题,在这里做个记录。【思路】本来想在网上抄作业,但是看到的基本上都是类似于按照时间区间统计的需求,说下自己的思路,因为项目里不同乡镇的割接时间是不一致的,所以首先要确定分界线,也就是找到不同乡镇最大割接的日期,这里我先创建了一张表用来做分界线使用create table tes原创 2022-05-30 22:32:23 · 776 阅读 · 0 评论 -
Oracle判断 是否含有非数字的内容
select * from test where not regexp_like (name, '^(+|[0-9]+)$')原创 2022-05-13 11:11:09 · 935 阅读 · 0 评论 -
ORACLE 处理重复数据
【背景】 项目中的数据表出现了重复的记录,需要处理,考虑时间问题,决定先把重复数据提取出来,在数据表中删除所有重复数据,后面处理了重复数据再重新入库【删除重复记录】这里算是新学习的一个东西,一直以为delete from 没办法 删除与其他表做匹配的数据,原来通过in 可以进行多字段匹配 ,然后执行删除操作--创建表 存储 重复记录create table cf_order_1 asselect to_char(t.log_time,'yyyy/mm') ctime,t.user_id,原创 2022-05-10 23:04:08 · 861 阅读 · 0 评论 -
大批量替换oracle中字段
【背景】项目中有需求对特定表A中数据进行替换,其中匹配表B跟A表有主键对应,区别于传统的UPDATE操作,下面的这个方法速度极快merge into program_test tusing daiyu_shichang aon (t.programid = a.programid)when matched thenupdate set t.duration = a.shichang...原创 2021-07-15 15:49:57 · 540 阅读 · 0 评论 -
PLSQL Developer免安装客户端连接Oracle数据库
日常开发中经常遇到需要临时使用oracle客户端的时候,偶尔配置一次,这次做个整理方便以后使用前期准备,常用的配置文件和压缩包时刻做好备份:1.plsql压缩包,2.tnsnames.ora配置文件开始配置关闭plsql developer重新打开登录数据库==================================================================还有一个就是plsql初次安装经常会发生的问题,就是中文...原创 2021-05-07 15:57:27 · 869 阅读 · 0 评论 -
MYSQL ORACLE 等数据库中几种JOIN方式
1.内连接左右表做内连接,结果将以笛卡尔积的方式返回select * from t1 join t2;2.左连接左右表做左连接,结果将返回左表所有记录,同时返回右表有匹配的数据记录,左右没有匹配的数据,显示为NULL,如果需要单独对为NULL这部分数据做处理,需要在结果集外层添加条件 where XXX is NULL ,就能把这部分数据单独提出来了select * from t1 left join t2 on t1.id = t2.id;3.右连接左右表做右连接.原创 2021-04-13 10:25:55 · 185 阅读 · 0 评论 -
ORACLE解决数据重复问题,提取非重复数据和重复数据
ORACLE解决数据重复问题,提取非重复数据和重复数据背景:项目需要提取数据表中的数据,数据有几种特殊情况,一种是基本的数据,第二种是重复数据,第三种是重复数据,但是重复的不明显的。举例说明,用户在单个月份订购了一款产品,正常流程用户一个月内,只能有一次订购记录,但是由于数据采集端有重复采集的情况,造成了一条数据被多次写入,如下:需求: 把重复的,有部分重复的,跟正常的分别都提出来,正常的单独放一个表文件,不正常的单独放一个文件解决方案:最开始写sql的时候,只想着把几...原创 2021-04-05 17:47:25 · 1357 阅读 · 0 评论 -
sqluldr2 用法简述
sqluldr2用法简述之前用过效果非常好,做个记录,优势就是能够做到plsqlnavicat等一系列软件和脚本无法完成的导出导入操作,速度超乎想象的快。1.百度下载sqluldr22.使用分windows和linux3.一般是跟oracle搭配着用,windows使用需要用cmd执行,把执行文件放到指定目录再操作,如果报错一般是ICO.dll ,不要惊慌,oracle的连接目录下面有这个文件,所以你把执行文件放在这个目录下执行就好了,具体怎么使用自行百度。...原创 2021-03-22 23:53:09 · 946 阅读 · 0 评论 -
不同ip地址的两个oracle数据库进行相互操作的解决思路
简单归纳如下:第一步,在操作的数据库上 创建另外一个提供数据的数据库的链接create database link XXX connect to userbj identified by bj123 using 'tns_xj_to_bj';(1.XXX是随便取的链接名称,方便后面查询即可2.数据库账号userbj,数据库密码bj1233.tns_xj_to_bj 是本地访问 提供数据数据库的配置文件tnsnames.ora的那部分,例如:10.0.0.100=(DESCRIPT.原创 2020-08-31 16:03:17 · 1516 阅读 · 0 评论 -
解决shell 里执行sqlldr commond not found问题
shell 里执行sqlldr,not found问题解决背景说明项目需要定时将服务器里面的日志文件中的某些数据提取出来,导入到相同服务器的ORACLE数据库表中, 方式是写shell脚本然后直接进行数据处理,然后使用sqlldr 和ctl的方式将数据导入到数据库中,之前使用过sqlldr2导出大批量数据,sqlldr倒还是头一次,脚本和数据库配置都没问题,倒是执行到sql...原创 2020-03-18 15:00:27 · 6002 阅读 · 0 评论 -
PLSQL创建Oracle定时任务
在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法:1、创建任务执行的存储过程,如名称为YxtestJob,向测试表中插入数据create or replace procedure YxtestJob isbegin insert into ztest(name,createdate) values('...原创 2020-02-28 10:53:38 · 380 阅读 · 0 评论 -
oracle 表示当前系统时间 前几个小时 sysdate
oracle 表示当前系统时间 前几个小时 sysdate当前时间:select sysdate from dual过去十个小时:select sysdate-10/24from dual原创 2020-02-24 15:51:15 · 2215 阅读 · 0 评论 -
自定义ORACLE函数拆分字符串,显示为行
定义一个类型CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN str_split PIPELINEDAS v_len...转载 2019-05-29 14:55:33 · 187 阅读 · 0 评论 -
解决oracle通过navicat导入表,数据无法直接查询,需要加双引号的问题
使用navicat 导入表到ORACLE时,总是会遇到虽然表格完整导入到数据库,但是往往查不出来数据,网上提供的解决办法是把查询的列 加上 双引号,或者表名加上双引号,但这解决办法却减慢了编写sql 的效率,所以还是得从根本上解决问题, 经查询发现,ORACLE中使用的表和字段默认全都是大写,如果表中名字或字段名有小写的,直接select就无法查询到结果,故而需要加上双引号来解决,...原创 2019-02-26 09:34:05 · 6179 阅读 · 0 评论 -
ORACLE 解决百分比拼接百分号,数字0不显示的问题
oracle数据库中计算百分比,使用round函数,|| '%' 小数点前为0的占比,无法正常显示:例0.25% 显示为 .25原因,拼接字符串造成的显示问题 解决办法:本来想通过加一层嵌套来解决的,里面这层SQL 只做round计算不做拼接,到外层再用concat或者||来做拼接,结果没有作用。使用decode函数做判断,decode(substr(num,1,1),'....原创 2019-02-02 10:31:09 · 8372 阅读 · 0 评论 -
查看ORACLE表空间大小,已经对分区表进行删除清洗操作
--查看总的表空间大小select t.tablespace_name, round(t.bytes / 1024 / 1024 / 1024, 2) || 'G' "总大小", round((t.bytes - f.bytes) / 1024 / 1024 / 1024, 2) || 'G' "已使用", round(100 * (t.byte...原创 2018-09-05 11:00:36 · 1202 阅读 · 0 评论 -
【ORACLE】ORA-12537 问题整理
ORA-12537主要是ORALCE 监听问题,今天帮同事处理问题时,他问道一种情况,开始连接很正常,后续多次出现ORA-12537问题简单整理了下 一般请况下1-检查数据库服务器是否没有启动监听2-检查客户端配置的监听文件tnsnames.ora是否正确,oracle\product\10.2.0\db_1\network\ADMIN\tnsnames.ora关注IP,端...转载 2018-09-20 09:05:25 · 1824 阅读 · 0 评论 -
【ORACLE】ORA-12537 问题整理
平时可以使用的oracle,因为重启服务器或者数据库就无法访问了 并报错可能是服务器与客户端连接的问题,可能是防火墙没有关,也可能是服务器数据库没有启动监听,重启一下即可 su - oracle然后启动监听lsnrctl start 会看到启动成功的界面;lsnrctl stop 停止监听器命令.lsnrctl status 查看监听器命令....原创 2018-09-28 16:41:14 · 3759 阅读 · 0 评论 -
ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法
ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法 (1)ORA-00020: maximum number of processes (xxxx) exceeded【问题简述】由于processes进程数达到了最大值。一般解决办法,关闭tomcat,关闭ORACLE重启数据库,从而达到清理数据库连接过多、进程...原创 2018-10-30 14:53:29 · 5853 阅读 · 0 评论 -
oracle表空间不足扩容的方法
1、查询当前用户的所属表空间select * from user_users;2、增加表空间有两种方法: 以sysdba登陆进数据库 语法: alter tablespace 表空间名称 add datafile 表空间存放路径 size 表空间大小 autoextend on next 增长的大小 maxsize 空间最大值(如果不限制空间最大值就用unlim...原创 2018-11-02 11:08:25 · 907 阅读 · 0 评论 -
sqluldr2 完美导出 ORACLE上亿条数据
linux下配置 oracle数据导出工具sqluldr2由于ORACLE 不支持大批量大规模的数据导入导出,当需要对数据库中的大量的表和数据进行备份时,就必须借助中间工具来对数据进行导出操作:尝试1:使用PL/SQL客户端对数据进行查询导出操作直接SELECT * 查询分区表,由于PL/SQL的优势能够查出结果,但直接通过导出sql,导出csv文件的时候就会出现,“当导出的数据体量达...原创 2018-11-08 16:37:00 · 5799 阅读 · 3 评论 -
配置 oracle数据导出工具sqluldr2
分别对应32为,64位的win和Linux平台安装步骤1.需要安装oracle_client2.复制sqluldr2_linux32_10204.bin(64位系统用sqluldr2_linux64_10204.bin)到$ORACLE_HOME的bin目录,重命名为sqluldr2.bin3.修改 $HOME目录下.bash_profile 增加如下环境变量exportL......原创 2018-11-08 16:48:39 · 1967 阅读 · 0 评论 -
ORALCE数据库180天密码过期
通过XSHELL 连接到服务器 su - oracle 切换到用户sqlplus /nologconnect / as sysdba;直接登录到SQL 服务器端直接按照下面的命令修改即可。出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,即建议客户能够定期修改数据库用户口令。在修改PASSWORD_LIFE_TIME值之前已...原创 2018-11-22 11:04:00 · 557 阅读 · 0 评论 -
sqluldr2工具导出 字符集为WE8ISO8859P1的ORACLE数据库数据
使用sqluldr2导出大批量数据遇到的坑第一坑,使用sqluldr2在oracle bin目录下执行后,没有任何效果,没有日志也没有数据。肯定是在/etc/profile 或者.bash_profile 文件中配置了 NLS_LANG的问题,注释掉或者换一个值试试看 第二坑,背景是需要把ORACLE中的历史数据导出做数据备份存储,由于ORACLE配置的字符集是AMERICAN...原创 2018-11-22 15:37:23 · 2031 阅读 · 0 评论 -
ORACLE 清空分区表数据,删除分区表
可以用 ALTER TABLE DROP PARTITION 来删除分区,元数据和数据将被一并删除。全删除ALTER TABLE yourTable DROP PARTITION partionName1;清数据ALTER TABLE yourTable TRUNCATE PARTITION partionName1;语句虽简单、操作需谨慎。 ...原创 2018-11-23 09:47:16 · 10646 阅读 · 0 评论 -
ORACLE修改数据库最大连接数问题,解决ORA-32001: 已请求写入 SPFILE问题
由于部分ORACLE没有设置自动清理缓存,使用PLSQL连接数据库时,经常会出现TNS超过最大连接的问题,有必要把最大连接数的值设置到更大,但往往在服务器端使用oracle账户登录到数据库操作sql时,报错: 在初始化参数job_queue_processes时候报错:SQL> alter system set job_queue_processes=10scope=spfile...原创 2018-12-12 10:29:02 · 1187 阅读 · 0 评论 -
ORA-01157: cannot identify/lock data file 问题解决
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file 早上登陆数据库,无法连接PLSQL,未果。通过服务器端试图登陆ORACLE,su - oraclesqlplus /nologconnect / as sysdba直接报错:cannot identify/lock data file,无法找...原创 2018-12-19 09:39:32 · 1512 阅读 · 0 评论 -
ORACLE定时任务没有执行原因
ORACLE定时任务没有执行原因这个问题研究了挺长时间,从最开始写ORACLE存储过程 create or replace procedure ...写定时任务 dbms_job.submit(...)执行定时任务 dbms_job.run(job num)如果以上三部分都没有报错,可存储过程没有执行出来特定的结果,可以考虑是不是因为ORACLE默认的定时任务执行范围设置太小了,首先查看一下你执行...原创 2018-04-17 08:49:08 · 15606 阅读 · 3 评论