![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
阳光下的青柠小镇
这个作者很懒,什么都没留下…
展开
-
扩展Oracle表空间
1、为system表空间新增数据文件2、查看一下表空间是否开启自动扩展功能原创 2022-06-14 16:15:22 · 1449 阅读 · 0 评论 -
Centos7(Linux)下安装Oracle11g
一、安装文件下载1、VMware上安装centos7系统(可以固定centos7的IP,也可以不固定)百度云:链接:https://pan.baidu.com/s/1-TrXkdmOa4dfMhSHY13NjA提取码:s3pp注:我这里的centos7是最精简的安装包2、下载oracle11g安装包百度云:链接:https://pan.baidu.com/s/14pC6FnjLpIUF-5a97xoLwA提取码:xlv93、下载Xshell7及Xftp工具,将安装包由本地上传到cento翻译 2021-11-24 23:34:02 · 5092 阅读 · 5 评论 -
开启Oracle的日志归档模式
1、关闭数据库shutdown immediate2、以mount模式启动startup mount3、开始归档alter database archivelog;4、查看日志状态archive log list;原创 2021-11-11 15:58:49 · 804 阅读 · 0 评论 -
Oracle的几种启动、关闭的方式及用途
一、监听服务:本机通过sqlplus连接数据库的时候不需要启动监听服务,但是远程连接或者通过plsql等工具连接的时候,需要开机本机的监听服务,否则无法连接。二、Oracle的启动步骤: **启动实例---加载数据库---打开数据库**-----------------------------------------------------------------------------------------------1、创建并启动与数据库对应的实例就是为实例创建一系列原创 2021-11-11 15:12:11 · 1088 阅读 · 0 评论 -
本机不能连接虚拟机(Windows环境)中的Oracle的处理办法
1、现象1:在虚拟机中ping本地的ip,可以Ping通,但是去ping虚拟机的网络,不能ping通,去关闭虚拟机的防火墙,然后再次ping,可以ping通;2、现象2:虚拟机中tnsping本机的网络,可以tnsping通,但是反过来就不行;3、现象2的解决方法:重新配置监听服务3.1、打开命令窗口,使用netstat -an命令查看1521端口是否打开,如果出现0.0.0.0:1521则可以远程连接Oracle,如果仅有127.0.0.1:1521则表示只能本机连接Oracle,这时候需要重原创 2021-11-10 14:33:13 · 3193 阅读 · 1 评论 -
Oracle批量处理空表
1、查询有哪些空表select table_name from user_tables where NUM_ROWS=0;2、构建sqlselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0原创 2021-10-22 15:20:38 · 134 阅读 · 0 评论 -
重建undo表空间
1、查询表空间文件所在的物理路径1.1、永久表空间的查询语句select * from dba_data_files1.2、临时表空间的查询select * from dba_temp_files2、重建undo表空间文件create undo tablespace undotbs2 '磁盘路径' size 100M;alter system set undo_tablespace='undotbs2';alter tablespace undotbs1 offline;drop原创 2021-10-20 15:44:15 · 371 阅读 · 0 评论 -
Oracle中 dbms_job.submit的说明
用法:DECLARE v_jobno NUMBER;BEGIN dbms_job.submit(v_jobno,--任务号,创建成功后,系统会分配一个号码 'setjob;',-- 要执行的存储过程 trunc(SYSDATE, 'mi') + 1 / 1440,-- 下次执行时间 '原创 2021-09-22 16:22:28 · 1302 阅读 · 0 评论 -
Oracle中tnsping无响应
1、tnsping 127.0.0.1(数据库服务器地址)无返回结果;2、重启数据库服务或者重启数据库服务器问题依然不能解决;3、最后发现,是 listener.log文件到4G了,删了这个文件 就正常了;文件路径:...原创 2021-09-18 14:12:29 · 682 阅读 · 0 评论 -
Oracle游标和游标变量
一、游标:游标的概念:游标的作用是临时存储从数据库中提取的数据块,由系统或者用户以变量的形式定义,是sql的内存工作区;//分为两种类型:显式游标和隐式游标隐式游标系统定义和管理的,像DML(insert,delete,update)操作和单行SELECT(select…into…)语句会使用隐式游标;显式游标用户自己定义的,分为4个步骤:1、声明游标在DECLARE部分,按照以下格式声明游标:CURSOR 游标名[参数1 数据类型[,参数2 数据类型]]IS SELECT语句;参原创 2021-04-02 16:44:07 · 3284 阅读 · 0 评论 -
eclipse中Java连接Oracle的详细步骤
1、创建一个Java Project(Java项目);1.1、在src下面创建一个package(包);1.2、在包下创建一个class(类)2、导入ojdbc.jar2.1、右键项目–新建–folder(命名为lib,名字随意)2.2、官网下载数据库对应的ojdbc.jar(与数据库JDK版本一致),或者去数据库对应的lib文件夹下复制一份;2.3、右键lib(刚创建的folder),粘贴,即将ojdbc.jar放到了lib文件夹下;2.4、在lib文件夹下找到刚copy的ojdbc.jar原创 2021-03-27 20:51:05 · 975 阅读 · 0 评论 -
Oracle的时间函数
1、查询系统时间:select sysdate from dual;2、查询本月的最后一天:select last_day(sysdate) from dual;3、add_months(a,b)当前日期a后推b个月:select add_months(sysdate,3) from dual;4、next_day(日期,时间点)select next_day(sysdate,'星期一')from dual;--表示下一个星期一5、extract用于从date类型或interval类原创 2021-02-08 14:57:20 · 902 阅读 · 0 评论 -
Oracle的排序函数
创建测试表:create table Grades( Sid varchar2(10), Cid varchar2(10), Fraction number(8,3));insert into Grades values('01' , '01' , 80);insert into Grades values('01' , '02' , 90);insert into Grades values('01' , '03' , 99);insert into Grades values('02原创 2021-02-04 18:02:00 · 5670 阅读 · 0 评论 -
Oracle快照的创建
1、什么是数据库快照?oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果,也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中。2、创建快照的步骤:2.1、在目标数据库上创建database links:create database link TEST1 connect to TEST identified by 123 using 'orcl';其中test1是database links的名字,test是目标数原创 2021-01-26 22:32:10 · 1460 阅读 · 0 评论 -
oracle误操作update后恢复到之前
1、通过系统视图vsql或者vsql或者vsql或者vsqlarea查找操作时间first_load_time:select * from v$sql where SQL_TEXT LIKE '%update ceshi set name=sex%';2、创建临时表,准备将查询的数据放入表中:create table temp_recover as select * from ceshi as of timestamp to_timestamp('2021-01-25/21:12:16','yyy原创 2021-01-25 22:25:18 · 300 阅读 · 0 评论 -
SQL练习题(Oracle环境)
数据表:–1.学生表Student(SId,Sname,Sage,Ssex)–SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别–2.课程表Course(CId,Cname,TId)–CId 课程编号,Cname 课程名称,TId 教师编号–3.教师表Teacher(TId,Tname)–TId 教师编号,Tname 教师姓名–4.成绩表SC(SId,CId,score)–SId 学生编号,CId 课程编号,score 分数学生表 Studentuse原创 2021-01-22 15:02:38 · 419 阅读 · 3 评论 -
Oracle的常用函数
1、decode的用法:decode(条件,值1,返回值1,值2,返回值2,值n……,返回值n,缺省值)例如:select decode(b.id,2,'齐天大圣',3,'哈哈',null) from test2 b ;2、replace的用法:replace(‘abcd’,‘bc’,‘哈哈’)例如:select replace(t.name,'齐天','hahh')||'哇' "替换后" from TEST2 t where id=1;3、concat的用法:concat是拼接函数,原创 2021-01-08 10:48:49 · 349 阅读 · 0 评论 -
Oracle使用数据泵expdp导出和impdp导入
用数据泵导出首先要创建逻辑目录,然后给用户读取和写入这个目录的权限一、expdp导出1、创建逻辑目录:create directory xx(逻辑目录名) as 'd:\backup';(as后面是自己事先创建的物理路径)2、给用户授权:grant read,write on directory xx(逻辑目录名) to 用户名;3、导出数据:expdp test/123@orcl dumpfile=a.dmp logfile=a.log directory=xx schemsa=tes原创 2020-12-18 17:38:01 · 13333 阅读 · 1 评论 -
Oracle中定义变量
关键字:declare1、定义变量:例如:declare i int :=1;其中:=是赋值运算符declare i int :=0; s int :=0;begin loop i:=i+1; s:=s+i; exit when i=100; --这里不是赋值用“=” end loop; dbms_output.put_line(s);end;2、定义数组变量:declare type type_array is varray(3) of int;原创 2020-12-15 17:56:45 · 15280 阅读 · 0 评论 -
Oracle中update更新多列
1、单列更新:update 表名 set 列名=1 where 条件;2、一次更新多列:update student a set (a.id,a.name)= ( select b.id,b.name from boy b where a.id=b.id and a.name!=b.name )where exists ( select 1 from boy d where d.id=a.id and d.name!=a.name );一定要加上后面的exists语句,我这个更原创 2020-12-10 16:18:41 · 7337 阅读 · 0 评论 -
Oracle去重数据
1、要删除的数据量比较小的话,直接查询出重复的数据,然后delete删除:delete t.* from 目标表 t where t.id_card in( select a.id_card from 目标表 a where to_char(a.clockindate,'yyyy-mm-dd') = '2020-09-01' group by a.id_card having count(a.id_card)>1)andt.rowid not in ( select min原创 2020-12-09 18:07:38 · 665 阅读 · 0 评论 -
Oracle数据库备份及还原及定时备份
如果数据库不是在本地,要配置好tns一、备份数据库1、导出真整个数据库:exp 用户名/密码@数据库实例 file=文件路径\1.dmp(注意:提前创建好) log=文件路径\1.log(可以不备份日志文件) buffer=65536(数据缓存区大小,可以不写)full=y;例如:exp test/123@ORCL file=E:\backup\%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=E:\backup\%date:~0,4%%date:~5,2%%d原创 2020-12-07 21:33:00 · 623 阅读 · 0 评论 -
MySQL、Oracle把一张表查询的结果插入到另一张表中
1、目标表不存在:create table 目标表名 asselect * from 表名 where 条件;2、目标表存在:insert into 目标表名select * from 表名 where 条件;3、同一张表中将A的值赋给B:update 表名 set A=B;4、删除表:truncate table 表名;......原创 2020-12-07 20:46:47 · 3112 阅读 · 0 评论 -
解决Oracle的锁表问题
1、查询锁表的脚本:select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;2、解锁:执行以下脚本:alter system kill session 'sid,serial#';原创 2020-12-07 10:06:33 · 103 阅读 · 0 评论 -
Oracle跨库查询
1、通过PL/SQL Developer工具创建,找到databases links——新建,如图:2、测试links是否创建成功:select * from 连接库的任意一个表的表名@gw;--能查出数据表示连接成功,其中gw是自己创建的links名3、创建要查询的表的视图:CREATE OR REPLACE VIEW 视图名ASSELECT * FROM 表名@GW;然后就可以跨库查询,方便数据比对了~...原创 2020-12-04 12:20:34 · 5710 阅读 · 0 评论 -
Oracle的用户及表空间相关操作
Oracle的用户及表空间相关操作一、创建及删除用户1、create user 用户名 identified by 用户密码 default tablespace 表空间名;2、授权(不授权的话不能登录):grant create session(权限) to 用户名;3、drop user 用户名 cascade。二、创建及删除表空间1、create tablespace 表空间名 datefile '路径' size 200M;(先在指定位置创建好文件夹)create tablespa..原创 2020-12-02 15:08:23 · 446 阅读 · 0 评论