Oracle
huaism
工作经验15年
展开
-
oracle 使用总结 导入 ,导出,创建用户,授权等
1.首先创建用户:create user joytravcn identified by cn;create user joytraven identified by en;create user joytravmember identified by member;create user joytravadmin identified by admin;2.给用户授权: gr原创 2013-05-15 12:03:04 · 790 阅读 · 0 评论 -
linux之cp/scp命令+scp命令详解
拷贝远程文件到本地: scp root@111.52.111.111:/home/dbbackup/oracle/schemas_20150108.tar.gz /home/oracle/app/admin/orcl/dpdump/参考文章:名称:cp使用权限:所有使用者使用方式:cp [options] source destcp转载 2015-01-09 10:26:21 · 696 阅读 · 0 评论 -
oracle 查看 表字段 名称及属性 与 mysql desc
mysql : desc 表名称oracle: select column_name,data_type,data_length,DATA_PRECISION ,DATA_SCALE from all_tab_columns where table_name='xxxxx';注意这里的xxxxx 不要加用户前缀 只写表名称, 如果要加 则应该: where table_name原创 2015-01-08 17:04:40 · 3037 阅读 · 0 评论 -
Oracle 11g 重建WMSYS用户的WMSYS.WM_CONCAT函数
当无此用户(WMSYS) 就会报错 ,没有WMSYS.WM_CONCAT方法:解决办法:1.下载 需要的文件 owmctab.plb owmaggrs.plb owmaggrb.plb (按照顺序执行)2. 打开命令行 sqlpus , 用sys 登陆:3. 下载后找到路径 前面加“@” 如:SQL> @C:\Users\JOYTRAVEL原创 2014-12-04 16:51:49 · 20647 阅读 · 0 评论 -
SQL 查询中间表同时满足2钟情况的办法
需求 :表A 结构 id ,name 表B:结构 id ,name 中间表C:id,a_id,b_id,a_type数据:1, 1, 1,12, 1, 2,23, 1, 3,3 需要查询 a_id 等于1 且type 同时等于 1,2,3 的中间表数据那么 用 IN OR AND 都不能满足需要:所以:select C.* F原创 2014-12-25 19:15:08 · 4010 阅读 · 2 评论 -
oracle 递归查询根节点
* SELECT * from XXX."XX" l where l.level_ = 1 start with l.id in (7150,16051,44402) connect by nocycle prior l.parent_id = l.id参考:今天在群里有个朋友问了起始地 目的地 距离(公里)A原创 2015-05-28 17:45:05 · 7926 阅读 · 0 评论 -
group by 和count的联合使用问题
今天写查询语句遇到一个问题,就是用group by进行分组以后,用count统计分组以后的个数,开始写的语句大体是:select count(m.fbrandid) from table as m group by m.fbrandid, month(fdate);数据库中的数据为: +----------+------转载 2015-05-18 16:55:04 · 34217 阅读 · 3 评论 -
linux oracle CPU访问过高 问题
linux 的oracle 一般项目CPU占用在 20%左右,当网站访问速度过慢,且本地访问很快可以用 top 看下是不是CPU使用过高且是oracle用户引起的。如果是请查询占用CPU过高额语句select *from (select v.sql_id,v.child_number,v.sql_fulltext,v.elapsed_time,v.cpu_time,v.disk原创 2015-05-22 14:36:33 · 2609 阅读 · 0 评论 -
ORA-12514: TNS:listener does not currently know of service requested in connect ……
出现这种问题的情况一般是两种:1.看看是不是监听服务没有起来2.检查有没有修改IP地址,计算机名称 除此之外在网上查资料的时候还有一种:http://blog.csdn.net/icqsky/archive/2009/07/01/4313791.aspx 如下:这个错误是因为Listener出了问题,请检查一下你的listener.ora文件,看下是转载 2015-06-05 13:45:34 · 1086 阅读 · 0 评论 -
如何修改序列(Sequence)的初始值(START WITH)
如何修改序列(Sequence)的初始值(START WITH)Oracle 序列(Sequence)主要用于生成流水号,Oracle EBS系统中是经常用到的。但是,有时需要修改序列初始值(START WITH)时,好多人凭感觉认为:Alter Sequence SequenceName Start With N。事实上,在Oracle Db中,修改序列没有这样的语法。没有这样的语法情况怎么办,有转载 2015-07-23 10:39:49 · 3934 阅读 · 0 评论 -
oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法
1、oracle函数 WMSYS.WM_CONCAT的使用如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可。查询语句需要配合使用group byselect aa,wmsys.wm_concat(t1.name) from (select t.name,to_char(t.createdate,'yyyy-mm-dd') aa fro转载 2015-09-01 18:24:08 · 5268 阅读 · 0 评论 -
ORA-12519: TNS:no appropriate service handler found 解决
有时候连得上数据库,有时候又连不上.可能是数据库上当前的连接数目已经超过了它能够处理的最大值.select count(*) from v$process --当前的连接数select value from v$parameter where name = 'processes' --数据库允许的最大连接数修改最大连接数:alter system set pro转载 2015-10-10 15:20:13 · 383 阅读 · 0 评论 -
ORA-28001: the password has expired
ORA-28001: the password has expired 通过ORACLE_NET_SERVICE 连接数据库的时候,报错ORA-28001: the password has expired 密码无效方法/步骤查看联机文档相关报错ORA-28001: the pa转载 2016-01-18 16:34:37 · 1129 阅读 · 0 评论 -
Oracle 多个查询语句结果合并
有三个不同的查询语句 1:select year_mon,sum(gasmon) from a where id='HBsRf0t6UI' and class=11 group by year_mon 2:select year_mon,sum(wellgasmon) from b where id='HBsRf0t6UI' and class=11 group by转载 2016-01-29 17:16:15 · 18923 阅读 · 0 评论 -
让sql语句不排序,按照in语句的顺序返回结果
有时候我们需要按照in条件里的id顺序输出结果,可sql语句在不加order by的时候是按照asc排序的,下边的sql解决按照in条件顺序的id输出查询结果MySQL写法: SELECT * FROM EVENT WHERE eventId IN(443,419,431,440,420,414,509) ORDER BY INSTR(',443,419,431,440,420,41转载 2017-04-21 16:25:42 · 2170 阅读 · 0 评论 -
Linux下oracle开机自启动设置
今天在虚拟机安装完oracle数据库重启系统后想进入数据库却发现如下错误:出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动。那么如何在Linux启动时自动启动Oracle监听和实例呢?首先尝试使用oracle启动数据库的命令dbstart,可...转载 2018-04-16 15:38:13 · 2215 阅读 · 2 评论 -
Oracle varchar2 转换 clob 类型
需求如下:原内容原创 2014-11-14 13:54:54 · 13729 阅读 · 1 评论 -
Oracle left join on 与 where 的区别
说明:需要查找 数据表中 2原创 2014-10-24 17:21:48 · 1264 阅读 · 0 评论 -
Oracle的列操作(增加列,修改列,删除列),包括操作多列
增加一列: alter table emp4 add test varchar2(10);修改一列: alter table emp4 modify test varchar2(20);删除一列:alter table emp4 drop column test; 这里要注意几个地方,首先,增加和修改列是不需要加关键字COLUMN转载 2014-09-23 15:18:42 · 14726 阅读 · 0 评论 -
Oracle中不区分大小写查询使用正则表达式函数REGEXP_LIKE
Oracle中的Like操作符使用'_'和'%'作为通配符,使用就像这样:SELECT name FROM test_like WHERE name like '_a%'; 即匹配test_like表name列中第2个字母是a的所有行。但是注意,Oracle匹配时区分大小写的。也就是说上面的查询时无法查询到name='SAas'这行的。Oracle10g中提供的正则表达式功能可以很好的转载 2013-05-06 14:39:41 · 2313 阅读 · 0 评论 -
linux 下用定时器 备份Oracle 不能成功的问题
filename=`date +%Y%m%d`/home/app/oracle/product/11.2.0/db_1/bin/expdp system/psss DUMPFILE=schemas_$filename.dmp DIRECTORY=DATA_PUMP_DIR SCHEMAS=,,, parallel=2 version=11.2.0.1.0linux 下用定时器 备份Orac原创 2013-06-20 19:29:20 · 2019 阅读 · 0 评论 -
Oracle 导出数据库后任然报错 找不到表等
场景:服务器是linux 的 线上是Oracle的,本地开发环境是WIN7,想去线上导出一份最新的数据库,然后在本地使用导入,然后执行步骤如下:1./home/app/oracle/product/11.2.0/db_1/bin/expdp "'/as sysdba'" DUMPFILE=schemas_20130623.dmp DIRECTORY=DATA_PUMP_DIR SCHE原创 2013-06-20 14:43:19 · 2024 阅读 · 0 评论 -
Oracle evl 函数使用
若数据库中的值是null 那么如果在执行 SQL时需要将其变为0 那么就使用函数 evl(字段,0);原创 2013-07-25 12:34:03 · 2404 阅读 · 0 评论 -
在linux下自动备份数据库,并且发送邮件。
接到任务:在cenos6.x系统中每天定时备份mysql数据库和Oracle数据库解决时间1天:步骤:MySQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。◆1、创建备份文件夹------------------------------------[root@localhost cd /home/[ro原创 2013-06-18 16:55:34 · 3252 阅读 · 0 评论 -
当执行SQL(ORACLE)时判段另一个字段的值去执行不同SQL,及 CASE WHEN 语句的使用
需求:在执行一个SQL时需要判断其他字段的值去执行不同的sql语句:SQL:UPDATE table SET clearing=1, clear_count=CASE WHEN UNLIMITED_TIMES = 1 THEN nvl(clear_count, 0)+1 else 0 END WHERE id=21的意思是当 table中 UNLIMITED_TIME原创 2013-10-21 18:02:49 · 6438 阅读 · 0 评论 -
oracle 的日期 between and 用法
//程序://介绍://如果downloadDateBegin 和 downloadDateEnd 日期不为空//格式化日期 if(downloadDateBegin != null && downloadDateEnd != null){ SimpleDateFormat sf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); St原创 2013-11-01 18:59:23 · 31251 阅读 · 0 评论 -
Oracle 查询不区分大小写 (正则函数)
//不区分大小写查询 REGEXP_LIKE(字段名, '(" + keyword+ ")', 'i') " );Oracle使用正则表达式离不开这4个函数:1。regexp_like2。regexp_substr3。regexp_instr4。regexp_replace看函数名称大概就能猜到有什么用了。regexp_like 只能用于条件表达式,和原创 2013-05-28 09:57:32 · 15416 阅读 · 0 评论 -
如何在LINUX下启动ORACLE
手动启动:用 oracle用户登录(或su - oracle)lsnrctl start sqlplus / as sysdba startup exit自动启动,要编写一个启动脚本,用root用户拷到/etc/init.d下,取名叫oracle然后, chkconfig oracle on,即可加入服务列表/etc/init.d/oracle start #启动/et转载 2013-11-06 19:49:13 · 652 阅读 · 0 评论 -
Oracle 数据库中实现三元运算和逻辑计算
在程序中需要在拼写SQL语句的时候加入逻辑运算:如:当一个值为空时 SQL语句为 1 不为空时 SQL语句为2开始使用 CASE WHEN 等未实现。最后使用:sql += " or " +" NVL2 (exp,date1,date2) between " + minPrice + " and " + maxPrice + ")";NVL2(exp原创 2013-12-30 19:37:33 · 27276 阅读 · 2 评论 -
ORA-28001: the password has expired
背景:我在公司的LINUX服务器上部署了,自动备份Oracle的脚本和自动发送邮件的脚本,但是很长一段时间后却收到的邮件只有即使个字节,感觉出了问题。于是在Linux下启动自动备份脚本:出现错误:ORA-28001: the password has expired于是乎知道原因:是由于system的账户过期了,我是用 system来备份的。所以解决办法:Oracle提示错转载 2014-01-21 10:27:36 · 1043 阅读 · 0 评论 -
oracle 当中,(+)的含义
SELECT A.id, B.IDDFROM A, BWHERE A.id(+)=B.IDD等价于SELECT A.id, B.IDDFROM A RIGHT OUTER JOIN B ON ( A.id=B.IDD)SQL> select * from A; ID VAL---------- ----------转载 2014-06-25 09:43:01 · 874 阅读 · 0 评论 -
oracle的drop table if exists
利用存储实现 create or replace procedure proc_dropifexists( p_table in varchar2 ) is v_count number(10); begin select count(*) into v_count from user_tables where table转载 2014-07-23 11:19:25 · 41731 阅读 · 0 评论 -
plsql 格式化sql 语句
背景:有一条大约30行左右的Oracle sql 语句 ,怎么看都别扭,于是想到是否原创 2014-07-04 14:44:07 · 31582 阅读 · 0 评论 -
修改 Oracle sys用户的密码
1.在oracle安装目录下搜索名为PWD数据库实例名.ora文件 2.备份一份密码文件(一定要哦,避免发生意外哦) 3.生成新的密码文件,在dos控制台下输入命令 orapwd file=PWD数据库实例名.ora文件路径\PWD数据库实例名.ora password=新密码 entires=数值 说明:file表示密码文件全路径(要和刚刚搜索到的一致) password表示原创 2014-07-08 17:35:25 · 863 阅读 · 0 评论 -
HIBERNATE ORACLE SPRINGBOOT2.x 保存报错 ORA-00001: 违反唯一约束条件
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (XXXX.SYS_C0023807)这个错大致一看,肯定是主键冲突了,因为是ORACLE 所以指定了 SEQUENCE 。实体配置如下:@SequenceGenerator(name = "SEQ_XXX", seque...原创 2019-03-28 16:52:37 · 987 阅读 · 0 评论