
oracle
黄宝康
这个作者很懒,什么都没留下…
展开
-
oracle查询锁表SQL
select object_name,machine,s.sid,s.serial# from gv$locked_object I,dba_objects o,gv$session s where I.OBJECT_ID=o.OBJECT_ID and I.SESSION_ID=s.SID;原创 2021-02-23 09:46:45 · 733 阅读 · 0 评论 -
oracle查看sql执行计划
explain plan for select语句;然后执行如下命令select * from table(dbms_xplan.display());原创 2020-05-19 10:57:53 · 381 阅读 · 0 评论 -
oracle查看表索引
select user_ind_columns.index_name,user_ind_columns.column_name,user_ind_columns.column_position,user_indexes.uniquenessfrom user_ind_columns,user_indexesWhere User_Ind_Columns.Index_Name = User_Indexes.Index_Nameand user_ind_columns.table_name = upper原创 2020-05-19 08:58:11 · 726 阅读 · 0 评论 -
Oracle函数——COALESCE
COALESCE含义:COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。用法:COALESCE(expression_1, expression_2, ...,ex...转载 2020-04-22 20:35:06 · 1071 阅读 · 0 评论 -
【Oracle】如何在查询视图时使用索引
通常我们使用hint来固定查询计划选择走表的索引 固定表的连接等等,但是如果第一层查询的是视图呢?yang@rac1>CREATE TABLE TA (ID NUMBER, NAME VARCHAR2(30), TYPE VARCHAR2(30)); Table created. yang@rac1>CREATE TABLE TB (ID NUMBER, NAME VARCH...转载 2020-03-19 08:46:15 · 1729 阅读 · 0 评论 -
本机连接虚拟机Oracle时报错的解决办法
虚拟机安装了Oracle服务器(桌面类)和客户端,里面使用plsql连接自己没有问题。在本机连接虚拟机没有成功。虚拟机的地址是192.168.126.132,已经确认本机能ping通虚拟机。先是报错ORA-12170,连接超时,查找了相关资料,估计是防火墙的问题。于是关闭虚拟机的防火墙,问题消失。但是出现了第二个错误:ORA-12514 无监听程序。参考网上的资料,解决办法如下:找到Orac...转载 2020-01-02 16:03:33 · 517 阅读 · 0 评论 -
ORA-15081: failed to submit an I/O operation to a disk
报错信息如下:RMAN> restore standby controlfile from '/rman_backup/stanby_0epojv93_1_1.ctl'; Starting restore at 2014/11/29 18:31:59using channel ORA_DISK_1 channel ORA_DISK_1: restoring contro...原创 2019-12-26 08:56:49 · 1851 阅读 · 0 评论 -
Linux安装Oracle 11g Grid Infrastructure 出现OUI-10182错误解决
在安装Oracle 11g Grid的时候报OUI-10182错误,解决方法为:用root帐户在/etc下建立文件oraInst.loc,并写入以下内容:inventory_loc=/u01/app/oraInventoryinst_group=oinstall重新执行安装程序即可。...原创 2019-12-25 11:48:13 · 704 阅读 · 0 评论 -
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
RMAN> restore standby controlfile from '/rman_backup/standby_0buk5kcb_1_1.ctl';Starting restore at 2019/12/23 18:02:52using target database control file instead of recovery catalogallocated cha...原创 2019-12-23 19:31:53 · 1701 阅读 · 0 评论 -
ORA-00845: MEMORY_TARGET not supported on this system错误解决
查找资料后发现在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。解决方法,增大/dev/shm[root@node1 ~]# df -ThFilesystem Ty...原创 2019-12-23 16:08:42 · 375 阅读 · 0 评论 -
使用RMAN将数据库迁移到ASM实例
使用RMAN将数据库迁移到ASM实例1、修改spfile参数,添加如下参数DB_CREATE_FILE_DEST=’+DATA’DB_RECOVERY_FILE_DEST=’+RECOVERY’DB_RECOVERY_FILE_DEST_SIZE=3gDB_CREATE_ONLINE_LOG_DEST_1=DGLOG1DB_CREATE_ONLINE_LOG_DEST_2=DGLOG2...原创 2019-12-09 14:14:43 · 447 阅读 · 0 评论 -
安装rlwrap包,提高sqlplus,rman,ggsci输入效率
1.解压下载好的rlwrap文件[root@wangliping tool]# tar -zxvf rlwrap-0.37.tar.gz2.进入解压好的文件[root@wangliping tool]# cd rlwrap-0.373.检查配置[root@wangliping rlwrap-0.37]# ./configure4.安装准备[root@wangliping rlwrap...原创 2019-12-06 10:21:36 · 443 阅读 · 0 评论 -
Oracle各表空间使用率查询
SELECT B.TABLESPACE_NAME bkj, SUBSTR((B.BYTES-SUM(NVL(A.BYTES,0)))/(B.BYTES)*100,1,5) sylFROM DBA_FREE_SPACE A,DBA_DATA_FILES BWHERE A.FILE_ID=B.FILE_IDGROUP BY B.TABLESPACE_NAME,B.FILE_NAME,B....原创 2019-11-29 09:43:27 · 365 阅读 · 0 评论 -
Oracle Enterprise Linux(OEL)镜像下载地址大全
Oracle Enterprise Linux是由Oracle公司提供支持的企业级Linux发行。据项目网站称,Oracle以Red Hat Linux做为起始,移除了Red Hat的商标,然后加入了Linux的错误修正。Oracle Enterprise Linux现在是,并旨在保持为,与Red Hat Enterprise Linux完全兼容。来自百度百科。自从学oracle开始,就开始采用...转载 2019-11-22 15:37:55 · 2927 阅读 · 1 评论 -
oracle 11g grid下载地址
下载地址:https://www.oracle.com/downloads/如下两个安装包链接地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#11ghttps://www.oracle.com/database/technologies/oracle-databa...原创 2019-11-13 10:13:24 · 3004 阅读 · 0 评论 -
docker安装oracle11g
拉取镜像docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 启动镜像,--restart=always表示自动启动镜像docker run -p 1521:1521 --name hbk_oracle_11g -d --restart=always registry.cn-hangzhou.aliyuncs.co...原创 2019-11-07 11:41:29 · 440 阅读 · 0 评论 -
ORACLE dbca报错 ORA-01034:ORACLE not available
1,问题描述,dbca最后 finish的时候报错ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener address ‘(ADDRESS=(PROTOCOL=TCP)(HOST=pldb236)(PORT=1521))’ ,如下图所示2,去hosts...转载 2019-11-02 14:26:54 · 1291 阅读 · 0 评论 -
将Oracle的sql文件转换成MySQL的sql文件
最近发现了一个很好用的工具用来进行Oracle,MySQL等不同数据库类型SQL文件的转换,接下来给分享一下具体步骤:1.首先下载工具powerdesigner破解版,网上下载即可2.在PowerDesinger里找到 File -->> Reverse Engineer —>> Database选择SQL类型后点击确定3.添加SQL文件的路径,点击确定4...转载 2019-11-01 16:45:19 · 4071 阅读 · 1 评论 -
Oracle用户管理,权限管理,角色管理
一、用户管理 新建用户create user 用户名 identified by 密码 【account unlock|lock】【password expire】默认account unlock,设置account lock,登录的时候会提示用户已锁定 修改用户alter user 用户名 identified by 密码 【account unlock|lock】【password expi原创 2017-06-29 14:14:53 · 715 阅读 · 0 评论 -
oracle 将Number型字段转为时间类型 将毫秒转为时间类型
将number类型转成日期类型:如将毫秒转日期 SELECT TO_CHAR(字段名 / (1000 * 60 * 60 * 24) + TO_DATE(‘1970-01-01 08:00:00’, ‘YYYY-MM-DD HH24:MI:SS’), ‘YYYY-MM-DD HH24:MI:SS’) AS CDATE FROM 表名;SELECT TO_NUMBER(TO_DATE(‘2005原创 2017-07-04 16:36:38 · 12354 阅读 · 0 评论 -
项目当中遇到要获取本月之前的数据列表查询
项目当中遇到要获取本月之前的数据列表查询使用 trunc 函数判断 where t.date < trunc(sysdate, ‘mm’); // 小于当前月的1月1日通过字符串判断 where to_char(t.date,’yyyymm’) < to_char(sysdate, ‘yyyymm’); 建议使用第一种方法原创 2017-06-27 16:54:37 · 477 阅读 · 0 评论 -
oracle数据库导入导出
在项目扩展时,常常需要开辟另外一个库,其中数据库表结构一样,或者作为备份使用。作为程序猿的你,必须掌握oracle的导入导出。 导出: expdp ibopo_zgq/ibopo_zgq schemas=ibopo_zgq dumpfile=ibopo_zgq20170628.dmp DIRECTORY=dpdata1dumpfile为导出的文件名 schemas为你要导出的数据库表空原创 2017-06-28 10:07:26 · 541 阅读 · 0 评论 -
Oracle 修改某字段允许为null
待修改字段假定为:shuifen1.当该字段为空时,可直接修改: alter table reportqymx modify shuifen null;2.当待修改字段不为空时: 新增一列 把要改变的列的值转移过去并清空原列的值 改变列的数据类型 把值转移回来,并删除新增的列alter table reportqymx add shuifen_temp number(10); upda原创 2017-06-28 14:40:53 · 36511 阅读 · 7 评论 -
Oracle如何创建用户,表空间
在JAVAEE工程当中时常用的Oracle数据库,作为一名后台程序开发人员,掌握如何在Oracle创建用户,表空间是一项必备的技能,不多说,看如下代码:/临时表空间/**create temporary tablespace ibopo_youxuan_centre_temp tempfile ‘/u01/datas/ibopo_youxuan_centre_temp.dbf’ size 50m原创 2017-06-28 09:35:38 · 675 阅读 · 1 评论 -
oracle11g expdp报错 ORA-06512: at "SYS.UTL_FILE", line 536
今天在使用expdp导出的时候报如下错误ORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file operationORA-06512: at "SYS.UTL_FILE", line 536ORA-29283: invalid file operation查找问题发现原创 2017-07-20 12:05:12 · 4600 阅读 · 0 评论 -
linux下重启oracle服务:监听器和实例
一、在Linux下重启Oracle数据库及监听器:方法1:用root以ssh登录到linux,打开终端输入以下命令:cd $ORACLE_HOME #进入到oracle的安装目录dbstart #重启服务器lsnrctl start #重启监听器方法2:Sql代码cd $ORACLE_HOME/bin #进入到oracle的安装目录 ./dbstart #重启服务器 ./lsnrctl start原创 2017-07-27 08:37:24 · 1138 阅读 · 0 评论 -
oracle恢复删除的数据
分为两种方法:scn和时间戳两种方法恢复。一、通过scn恢复删除且已提交的数据 1、获得当前数据库的scn号 select current_scn from v$database; (切换到sys用户或system用户查询) 查询到的scn号为:1499223 2、查询当前scn号之前的scn select * from 表名 as of scn 1499220; (确定删除原创 2017-08-21 15:10:26 · 959 阅读 · 0 评论 -
ORA-01466: 无法读取数据 - 表定义已更改
这个错误发生在闪回查询的时候,也可能发生在闪回表的时候先说结论:如果删除数据后,对表做了ddl操作(更改列的长度等,但是根据测试,增加一列不会报错),然后想闪回,则报错,不能闪回。实验如下:SQL> create table gw(id int,name varchar2(5));Table created.SQL> insert into gw values(1,'a');1 row create原创 2020-11-30 15:17:06 · 26192 阅读 · 4 评论 -
Oracle根据年份和月份,返回该月一共有多少天
select to_char(last_day(to_date(‘2017-02’,’yyyy-mm’)),’dd’) from dual 也可以通过编写一共函数,根据是否是平年或者是闰年得到,在这里充分用到了oracle自带的函数,通过获取该日期的最后一天,只取年月日的日部分数据,技巧嘿嘿!原创 2017-08-22 16:36:43 · 5722 阅读 · 0 评论 -
执行请求的操作时遇到错误: ORA-28001: the password has expired 28001. 00000 - "the password has expired" *Cause
Oracle数据库遇到如下错误:登录数据库服务器,使用 sqlplus / as sysdba命令,进入oracle数据库,使用:select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';语句查看密码的有效天数为180天,也就是三个月。使用:alter profile defau原创 2017-08-25 14:20:58 · 3656 阅读 · 0 评论 -
ORA-00020:maximum number of processes (500) exceeded 错误解决方法
今天刚以上收到了系统预警短信,是OA的数据库系统,登录到服务器上,发现链接数据库报错。[Oracle@oadb ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Jul 21 10:38:28 2015Copyright (c) 1982, 2013, Oracle. All rights reserved.原创 2017-09-06 11:07:13 · 1559 阅读 · 0 评论 -
ORA-12519: TNS:no appropriate service handler found 解决,最大连接数的修改
有时候连得上数据库,有时候又连不上.可能是数据库上当前的连接数目已经超过了它能够处理的最大值.select count(*) from vprocess–当前的连接数selectvaluefromvprocess –当前的连接数 select value from vparameter where name = ‘processes’ –数据库允许的最大连接数修改最大连接数: alter sy原创 2017-09-27 14:54:53 · 547 阅读 · 0 评论 -
Oracle用户登录密码过期的修改
1、linux系统下,以oracle用户登录进去:su - oracle2、以系统dba身份登录oracle命令窗口;sqlplus / as sysdba3、然后执行以下命令:alter user 用户名identified by 密码;ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;原创 2017-10-18 16:07:50 · 1554 阅读 · 0 评论 -
Oracle排序nulls last,nulls first ,nvl,case
1、缺省处理Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前2、使用nvl函数nvl函数可以将输入参数为空时转换为一特定值,如 nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name 通过这个函数可以定制null的排序位置。3、使用decode原创 2017-11-07 20:15:36 · 509 阅读 · 0 评论 -
Oracle 查询类似 select top 的用法
Oraclet 没有像sql server所支持的top语法,不过可通过rownum控制。rownum没有所谓的小于,只有大于。–查询前10条数据select * from MID_EHR_STAFF where rownum<10;–查询第5~10条的记录,minus(减)select * from MID_EHR_STAFF where rownum<10 minus select * from原创 2017-11-08 08:50:20 · 10879 阅读 · 0 评论 -
ORACLE WITH AS 用法
语法:with tempName as (select ....)select ...例:现在要从1-19中得到11-14。一般的sql如下:select * from( --模拟生一个20行的数据 SELECT LEVEL AS lv FROM DUAL CONNECT BY LEVEL < 20原创 2017-11-08 09:00:52 · 3917 阅读 · 0 评论 -
Oracle反转倒置函数
Oracle提供了一个反转倒置函数reverse,但此函数不能分组倒置,本文提供了一个即可分组倒置的函数,如下所示:CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:='') RETURN VARCHAR2 IS v_return VARCHAR2(4000); vp_str VARCH原创 2017-10-31 10:16:08 · 1186 阅读 · 0 评论 -
oracle接收键盘输入
需求:判断用户从键盘输入的数字 功能要点:1、如何使用if语句 2、如何接收键盘输入的值 注意点:1、语法要求的掌握 2、elsif跟其他编程语言的坑 3、例外的处理实验PL/SQL程序:set serveroutput onaccept num prompt '请输入一个数字';declare pnum number :=#begin if pnum=1 then dbm原创 2017-11-15 15:31:35 · 6975 阅读 · 0 评论 -
Oracle PL/SQL 循环控制语句
/*分别使用while循环,loop循环,和for循环输出1-10*/set serveroutput ondeclare pnum number :=1;begin --while循环 while pnum<=10 loop dbms_output.put_line(pnum); pnum:=pnum+1; end loop; pnum:=1;--重新赋值原创 2017-11-15 15:46:31 · 504 阅读 · 0 评论 -
Oracle 查询数据库有多少张表
这个查询的需求很大可能是进行了Oracle数据库导入导出操作,买了新的服务器,你的上司老板叫程序猿们,数据库换个环境,移植到新的服务器上。为了验证导入进去的表有没有少,我们需要查询当前用户下的总表个数。登录sys用户后通过user_tables表查看当前用户下表的张数。 sql:conn / as sysdba; sql:select count(*) from user_tables原创 2020-11-30 16:25:18 · 32239 阅读 · 2 评论