Oracel之可重复执行的建表语句
摘要:declare v_isExist integer := 0; begin select count(1) into v_isExist from user_tables t where lower(t.table_name) = lower('CAI_DAMO_NOTICE'); if v_isE
阅读全文
Oracle之扩展表字段的可重复执行脚本的编写规范
摘要:--cgb 扩展表--新增考试级别(exam_level)这个字段 declare icount integer:=0; begin select count(1) into icount from user_tab_columns u where upper(u.TABLE_NAME) = 'CA
阅读全文
Oracle之数据库连接池
摘要:连接池出现的背景: 数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。 数据量少的情况: 每一次web请求都要建立一次数据库连接。建立连接是
阅读全文
Oracle之下标问题
摘要:Oracle中计数从1开始,与java中从0开始计数不同,但由于Oracle数据库设计的灵活性,所以其下标是从0或从1开始都是一样的,即如下两段代码的运行结果完全相同。 例1.下标从0开始 select substr('hello',0,3) from dual; // 输出hel例2.下标人1开始
阅读全文
Oracle之instr、substr和nvl,nvl2的用法
摘要:以下几种是比较常用的函数: INSTR用法:INSTR(源字符串, 要查找的字符串, start_position(从第几个字符开始,) nth_appearance (要找到第几个匹配的序号)) 返回找到的位置,如果找不到则返回0. 默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
阅读全文
char与nchar的区别
摘要:char支持的是本地默认编码,一般只支持中文和英文还有少部分日语和韩语等。 nchar是unicode编码,是兼容世界上几乎所有语言的,当然也支持中文。 nchar占用空间比char大。比如char格式下一个字母只占用一个字节,汉字占用两个,nchar所有字符都占用两个字节。 char 和nchar
阅读全文
Oracle之select SEQ_YX.nextval from dual是什么意思?
摘要:dual : 是oracle的虚拟表,不是真实存在的.SEQ_YX : 这个是开发人员自己起的一个"序列"的名字,序列一般用于生成id号.SEQ_YX.nextval 就是取序列的下一个值举个例子来说序列当前的值是100,执行一下上面的语句就会取到101,再执行一下就会取到102,一直累加下去 在创
阅读全文
Oracle之listener.ora配置详解
摘要:listener.ora文件主要是为了 配置listener.ora静态监听。 详解各个属性: 第一:LISTENER部分包含协议地址列表,每个实例一个入口,监听名称,可以配置多个监听,多个监听的端口号要区分开来 第二:SID_LIST_LISTENER部分标识全局数据库名称、标识监听程序正在服务的
阅读全文
Oracle之PL/SQL登录Oracle数据库 报错ORA-12154:TNS:无法解析指定的连接标识符
摘要:首先安装了Oracle之后,使用sqlplus可以登录得上账号system/root,而使用PL/SQL登录会报错,即 接着点击OK则报错: 或者: 建议根据这两个文件改下基本就可以了: 如安装oracle路径下的listener.ora文件: D:\soft_install_route\oracl
阅读全文
oracle之存储过程
摘要:1.声明变量的注意点: 1)声明变量必须在"begin"关键字之前; 2) 声明变量不需要使用关键字"DECLARE"; 3)声明变量的变量不区分大小写; 下面进行声明变量的3种方式有 第一种:直接声明数据类型(按照数据类型的声明方式进行区分) 格式:变量名 数据类型(大小) 注意:如果设置为字符串
阅读全文
oracle之VARCHAR2(50 CHAR) 和VARCHAR2(50) 区别?
摘要:首先要明白的是:根据字符集不同,varchar2(50)这样在gbk可存25个汉字,utf8可存16个汉字 这里的50相当于50BYTE,是按字节计数,50CHAR是按字符计数。 对于多字节字符(如汉字),varchar2(50)仅能存储25个汉字,而varchar2(50char)能存储50个汉字
阅读全文
Oracle如何回滚误删除的数据
摘要:如果提示ORA-08189: 因为未启用行移动功能, 不能闪回表 。一般来说出现这种错误,就是数据库表不支持闪回功能,修复很简单,开启即可。所以执行以下语句 再执行闪回 成功闪回修改.
阅读全文
Oracle之 使用Left join代替not in
摘要:很多人都知道 在各种数据库里面 not in 的效率极其低下.例如 我们假如a表有 10万条记录, 而b表里面也有10万条记录, 那么需要的判断是 10万 乘以 10万 ,则是100亿次判断.所以执行效率极其低下. 即使发现存在就返回.那么也有 100亿/2=50亿次判断. 此时,我们可以用 Lef
阅读全文
oracle之查询某列带有中文
摘要:oracle数据库,查看字段中是否有中文 select * from T_XSCJHZ_TEST_TMP where ASCIISTR(kscj) like '%\%';
阅读全文
oracle之批量去掉字段值空格
摘要:--查询验证 select ltrim(col1) from t1; --去掉字段值左边空格update t1 set col1=ltrim(col1); --去掉字段值右边空格update t1 set col1=rtrim(col1); --去掉字段值两边空格update t1 set col1
阅读全文
sqlloader快速插入万级别excel表或者txt数据到数据库的使用
摘要:由于从老系统导数据是通过excel表的方式导出的,里面数据有几十万条数据,如果只是简单通过复制黏贴的方式复制到数据库中,那么这个过程将会非常耗时和繁琐的。于是就去研究了下sqlloader如何使用,经过研究后发现这个方法非常管用,就记录下来供大家参考参考 第一步:整理Excel表格的数据如下: ex
阅读全文
Oracle之临时表过滤数据与在where条件区域过滤条件的区别
摘要:这段sql竟然执行了9到10秒,我也是懵了: 优化后的sql只需要0.5秒: 总结:作为临时表的效率要比作为条件判断要高,因为临时表连接只要一次,而作为添加就会循环判断n次,造成效率极其低下
阅读全文
数据库中字段类型为Number(5,2),两个参数表示什么意思?
摘要:例子:number(m,n)存放数字类型的数据,有效数字为m,整数位数为m-n,小数位数为n(n可以不写,默认为0, 此时number表示整数)n可以大于0,此时代表四舍五入到小数点右边的第n位,n可以小于0,表示四舍五入到小数点左边的第n位。 实际工作中遇到的: number(5,2) 最大长度是
阅读全文
Oracle的字符串转数组以及数组转字符串
摘要:regexp_substr详解: regexp_substr函数格式如下:function regexp_substr(String, pattern, position, occurrence, modifier)__srcstr :要操作的字符串__pattern :正则匹配规则字符串__pos
阅读全文