数据库~Oracle
Nemo_XP
这个作者很懒,什么都没留下…
展开
-
oracle查询不走索引的一些情况(索引失效)
Oracle建立索引的目的是为了避免全表扫描,提高查询的效率。但是有些情况下,即使建立了索引,但是执行写出来的查询还是很慢,然后通过执行计划会发现是索引失效导致的(不走索引,走全表扫描)。所以需要了解一下有哪些些情况会导致索引失效,即查询不走索引的原因。在写SQL的层面上一些骚操作会导致索引失效没有写WHERE子句或查询条件没有建立索引既然没有WHERE子句,那么就是查询全部数据了,相当于全表扫描,当然不走索引了。而查询条件上没有建立索引的话,索引都没有还走个毛索引啊。WHERE子句上没有转载 2021-12-23 10:39:04 · 8511 阅读 · 1 评论 -
oracle REPLACE函数语法
oracle REPLACE 函数是用另外一个值来替代串中的某个值。REPLACE(srcstr, oldsub[, newsub ] )最简单的使用:把不吉利的数字换成吉利数字:select replace('123456789','4','88888888' ) from dual;工作情景:数据表中某字段Code中部分数据中多了N个0,如从210453变成了2’0000000‘10453,我们此次任务就是把中间引号的东西干掉。使用replace语法解决。 update ta原创 2021-04-22 16:15:49 · 8975 阅读 · 0 评论 -
ORA-06502: PL/SQL: 数字或值错误 : 字符到数值的转换错误
sql中拼接字符串时**使用了“+”所以报错了,改成"||"**拼接字符串就好了.原创 2020-07-09 15:56:14 · 2863 阅读 · 1 评论 -
ORA-01762: vopdrv: FROM 中没有视图查询块处理
执行代码:with as 写法错误如下:ORA-01762 – vopdrv: from中没有视图查询块报错原因:由于with 中定义的查询,在后面没有用到,所以报错了,因为在写语句时,是一段一段写的,每写一段,就运行一段,一开始并没有报错(只运行了最后一段),但是越写越多时就报错了,在oracle 11g r2的环境,感觉是个bug。如下,在前面我定义了两个视图查询快,但是在使用的时候,我注掉了一个就会报错了.解决方法:在最后的语句中用到了所有在with中定义的语句,就不报错了。参考网友的原创 2020-07-07 17:07:46 · 2990 阅读 · 0 评论 -
ORA-28000 帐户已被锁定
1、问题描述应用监控程序报警ORA-28000,PL/SQL无法登陆数据库2、问题分析oracle11g中默认在default概要文件中设置了 “FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此,该用户会自动锁住。3、问题处理(1) conn sys/oracle as sysdba(2)select username,account_status from dba_users where username=‘xxx’;,查看到用户锁了(3)解锁xxx原创 2020-06-18 17:16:24 · 393 阅读 · 0 评论 -
oracle查看所有的表和字段
获取表字段:select *from user_tab_columnswhere Table_Name=‘用户表’order by column_name获取表注释:select *from user_tab_commentswhere Table_Name=‘用户表’order by Table_Name获取字段注释:select *from user_col_comme...原创 2020-03-03 17:33:01 · 475 阅读 · 0 评论 -
Oracle单表备份三种方案
备份方案一:备份create table [备份名] as select * from [表名];恢复truncate table org_group;insert into org_group select * from [备份名] ;说明此种情况适用于,同一个数据库,需要备份某张表。备份方案二:备份oracle用户终端执行:exp [用户名]/[密码] t...原创 2020-01-10 17:58:23 · 1646 阅读 · 0 评论 -
Oracle修改字段类型方法总结
有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20));2、假设字段有数据,则改为nvarchar2(20)可以直接执行:alter table tb modify (name nvarchar2(20));3、假设字段有数据,则改为...原创 2020-01-10 17:23:23 · 555 阅读 · 0 评论 -
Oracle树查询(查询所有子节点,父节点等等)
Oracle树查询的最重要的就是select...start with... connect by ...prior语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。以我做过的一个项目中的表为例,表结构如下...原创 2019-11-07 14:51:53 · 3897 阅读 · 0 评论 -
Oracle的Numer类型与C,C#数据类型对应关系
最近一直在编和Oracle数据库相关程序。Oracle的Number类型和C语言,C#语言类型的对应关系,在网络上查找很久,也没有找到说明文字。但在http://oracle.chinaitlab.com/induction/734741.html有《Oracle与DB2数据类型分类对应说明》,根据这篇文章,我总结了一下Oracle的Number类型和C语言,C#语言类型的对应关系。NUMB...原创 2019-10-16 18:15:33 · 646 阅读 · 0 评论 -
oracle环境变量配置
1.右键我的电脑—>属性—>高级系统设置2.环境变量---->新建总共配置三个变量(1)变量名 ORACLE_HOME变量值 G:\app\TH\product\11.2.0\dbhome_1 (这个地方输入你的安装地址,我输的是我的路径)(2)变量名 TNS_ADMIN变量值 G:\app\TH\product\11.2.0\dbhome_1\NETWO...原创 2019-10-03 00:05:14 · 1144 阅读 · 0 评论 -
oracle实现判空取值
方法1:COALESCE(字段A,字段B,字段C)意义:取第一个部位空的值方法2:decode(expr,expr1,return_expr1[,expr2,return_expr2,…,][,default])意义:类似三元表达式方法3:case whenCase具有两种格式。简单Case函数和Case搜索函数。–简单Case函数CASE sexWHEN ‘1’ THEN ‘男’...原创 2019-08-14 16:31:04 · 1982 阅读 · 0 评论 -
Oracle Order by 按汉字拼音排序
测试代码参见: select name ,ascii(name) from(select '{' name from dual unionselect '%' name from dual unionselect '中' name from dual unionselect '鑫' name1 from dual unionselect '贴' name2 from dual ) t orde...原创 2018-04-11 09:17:50 · 3471 阅读 · 0 评论 -
Oracle关于如何获取分组排序后的第一条数据
平时遇到最多的sum(),max()等等,使用group by聚合函数即可轻松解决,但是有时候我们的需求:按类别分组,按时间排序,然后获取每个分组中最新的一条。这种需求。SQL1>select t1.*,t2.nums from log_update_cycle t1,(select b.cycle_id,count(*) nums,max(update_date) update_date...原创 2018-04-12 09:32:13 · 23172 阅读 · 2 评论 -
Oracle中Null与空字符串' '的区别注意和处理
总结下面的:查询时候,如果是模糊查询要判断查询字段是否为"",因为模糊匹配不到null,当客户不填写查询内容时便会漏掉为null项。sql.Append(string.IsNullOrEmpty(RUser) ? " and (rname like :RUser or rname is null)" : " and rname like :RUser");排序时比其他数据都大常用NVL(显示值)...原创 2018-04-11 18:23:16 · 17022 阅读 · 0 评论 -
使用存储过程的优缺点
优点:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句...原创 2018-09-06 20:41:09 · 267 阅读 · 0 评论 -
oracle,sql,C#不足位数补零
oracle函数中有不足位数补空格的函数LPAD和RPAD分别是左补位和右补位repalce(lpad(字段名,共几位),‘ ’,‘0’)如运行select replace(lpad(‘123’,5),’ ',‘0’) from dual结果是00123即补足五位select lpad(‘123’,5,‘0’) from dual 这样也可以SQL处理语法 Right(str...原创 2018-10-19 14:40:04 · 1216 阅读 · 0 评论 -
ORACLE基本数据类型总结
ORACLE基本数据类型:字符串、数字、日期、LOB、LONG RAW& RAW、ROWID & UROWID。字符串类型的数据又可分为:据库字符集(CHAR/VARCHAR2/CLOB/LONG)国际字符集(NCHAR/NVARCHAR2/NCLOB)字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。一 字符串类型固定长度类型(CHAR/NCHAR...原创 2018-10-19 15:08:56 · 232 阅读 · 0 评论 -
plsql查看是否锁表,锁模式等,以及解锁SQL
--工作中的点滴积累SELECT l.session_id sid, s.serial#, l.locked_mode 锁模式, l.oracle_username 登录用户, l.os_user_name 登录机器用户名, s.machine 机器名, ...转载 2019-04-26 16:12:51 · 2065 阅读 · 0 评论 -
Left join的on后条件不起作用的原因
结论:left join 为保证左表所有行 因此 on里的条件只对右表起作用,控制左表的条件写到这里也没用原理:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。下面的内容为转载前天写SQ...原创 2019-04-28 15:07:11 · 11058 阅读 · 5 评论 -
Oracle存储过程,以逗号分隔字符串in传参的处理
参数定义 i_ward_id in varchar2存储过程 where ward_id in (i_ward_id )经测试发现存错过程写死如where ward_id in (‘11’,‘22’,‘33’ )是没有问题的。但是如果从程序传过来的参数i_ward_id =“‘11’,‘22’,‘33’”就会出现问题。经查资料找到解决办法如下:SELECT REG...原创 2019-05-16 21:28:29 · 2604 阅读 · 0 评论 -
win7旗舰版(64位)环境下oracle11g的安装方法和32位的plsql如何解决打不开64位oracle11g的问题
环境:操作系统:windows7旗舰版(64位)或win8 64位数据库:64位Oracle11g(win64_11gR2)PL/SQL:PL/SQL developer v9.0.1准备工作:1、下载Oracle11g( Microsoft Windows (x64))下载路径:http://www.oracle.com/technetwork/database/enterprise-editi...原创 2018-04-11 09:17:36 · 732 阅读 · 0 评论