Oracle 存储+定时器+触发器 一、编写一个存储过程, 记录emp的所有信息到新表empcp, 计算工龄和入职奖金, 再创建一个存储过程, 记录操作日志状态, 再写一个定时器, 按10秒刷新一次, (记得关闭定时器), 并且加入触发器二、代码实现--创建empcp表create table empcp( empno number ,ename varchar2(20) ,job varchar2(30) ,mgr number ,hiredate date ,sal number
Oracle 自定义函数 字符串去重 一、实现需求--编写一个函数实现字符串去重, 字符串是以逗号拼接的元素: a,a,b,c,d,a,c --要求将重复的元素去重后返回: a,b,c,d二、实现思路1. 接触connect by 生成正则最大匹配值n序列2. regexp_substr(str,'[^,]+',1,n)3. 列去重, 然后wm_concat()三、实现代码--编写函数create or replace function f_distinct (str in varchar2) ret
Oracle 按‘/‘分组统计 一、数据准备--创建表 examcreate table exam ( eid number ,ename varchar2(10));commit;--插入数据insert into exam values(1,'/');insert into exam values(2,'A');insert into exam values(3,'B');insert into exam values(4,'C');insert into exam values(
Oracle 随机生成记录并插入表中 一、实现需求题目:根据下面要求编写存储过程,并调用执行。具体要求如下:1)编写一个存储过程,向表中随机插入1000条记录SerialNO:使用序列方式,自增长Filepath:使用随机插入6个字母Partid:使用随机4位数字StaffNO:从YTCZ060001.......到YTCZ060020 中随机抽取RecordTime:从2012年8月1日之前的6个月中的随机抽取二、对象准备--创建表...
Oracle 两日期相加减或者两时间相加减 1. Oracle 两个日期/两个时间相加减默认单位是天.2. 间隔小时差(*24); 间隔分钟差(*24*60); 间隔秒差(*24*60*60); 间隔毫秒差(*24*60*60*1000).3. Oracle对日期/时间加减num, 都是以天为单位加减num.4. 加减n小时(n/24), 加减n分钟(n/24/60), 加减n秒(n/24/60/60)....
Oracle 日期格式和字符串格式转化的细节问题 --1. 字符串转日期select to_date('2021-01-01 21:22:11', 'yyyy/mm/dd hh24:mi:ss') from dual; --可以运行select to_date('2021-01-01 21:22:11', 'yyyymmddhh24miss') from dual; --报错--2. 日期转字符串select to_char(to_date('2021-01-01 21:22:11', 'yyyy-mm-dd hh24:mi:ss'),'yyy.
ORA-12523: TNS:监听程序无法找到适用于客户机连接的例程 一、问题背景 Oracle新建数据库, 数据库名为BI, 再配置完 ts.ora串码后, 通过plsql客户端登录, 提示监听错误;二、解决办法如上图, 橙色框标识, 分别为Oracle数据库的监听服务, 和新建数据库BI的连接服务操作流程: 1. 将TNSlistener服务和ServiceBI服务停止 2. 按顺序重启服务, 顺序为: 开启TNSlistener服务 --> 开启ServiceBI服务...
Oracle 统计不同品牌营销天数 一、数据准备create table marketing( brand varchar2(100) , startdate date , enddate date);insert into marketing values('华为',to_date('2018-08-04','yyyy-mm-dd'), to_date('2018-08-05','yyyy-mm-dd'));insert into marketing values('华为',to_date('
Oracle 随机函数 dbms_random 一、dbms_random.random--1) 基本语法:随机生成一个从-power(2,31)到power(2,31)的整数值,注意,区间为左闭右开。select dbms_random.random from dual;--2)随机从emp表中获取3条记录select * from (select * from emp order by dbms_random.random) where rownum <= 3;二、dbms_random.value--1) 基本语法:生
Oracle 生成随机日期 一、生成2021-07-01与2021-07-10之间的连续日期select to_date('2021-07-01','yyyy-mm-dd') - 1 + rownum dtfrom dualconnect by rownum <= floor(to_date('2021-07-10','yyyy-mm-dd') - to_date('2021-07-01','yyyy-mm-dd'));二、生成2021年7月份到月末的连续日期selectto_date('2021-07
Oracle 查找三天登录用户问题 一、数据准备:create table logintest(user_id number,log_date date);insert into logintest values(111,to_date('2021-06-01','yyyy-mm-dd'));insert into logintest values(111,to_date('2021-06-02','yyyy-mm-dd'));insert into logintest values(111,to_date('2021-06-03
Oracle 关联删除 一、数据准备:--1)创建待删除的数据create table stu( sno varchar(20), sname varchar(40), sex varchar(20));insert into stu values('s001','张磊','男');insert into stu values('s002','宋飞','男');insert into stu values('s003','王丽','女');insert into stu values('s004','李娟
Oracle 关联更新 一、数据准备:--1)创建待更新的主表学生表create table stu( sno varchar(20), sname varchar(40), sex varchar(20));insert into stu values('s001','张磊','男');insert into stu values('s002','宋飞','男');insert into stu values('s003','王丽','女');insert into stu values('s004',
Oracle 去重表中数据 rowid 一、数据准备create table stutest (sno number,sname varchar2(100),sex varchar2(2));insert into stutest values(1,'张三','男');insert into stutest values(1,'张三','男');insert into stutest values(2,'李四','男');insert into stutest values(2,'李四','男');insert into stut
Oracle 增量更新以及增加数据 merge into 一、数据准备--1)准备数据create table a (id number,name varchar2(10));create table b (id number,name varchar2(10));insert into a(id,name) values(1,'A');insert into a(id,name) values(2,'B');insert into a(id,name) values(3,'C');insert into a(id,name) values(4
Oracle 逗号分隔的列转行 一、实现要求:二、实现思路三、代码实现--1)数据准备create table testb (dname varchar2(50),wm_ename varchar2(500));insert into testb values('财务部','张三,赵六,王五,李四');insert into testb values('销售部','陈红,高圆圆,赵丽颖');insert into testb values('公关部','王丽,徐英,李红');comm...