Welcome 微信登录

首页 / 数据库 / MySQL

PLSQL开发实现字符串拆分

PLSQL开发实现字符串拆分

在应用程序开发中,会出现单选或多选框条件输入的需求。如输入框的输入值为"sz",或"sz|nj|zj|nt",在SQL中会这样处理。select * from tab_1 where col_1="sz" ;这是单选框输入。select * from tab_1 where col_1 ="sz|nj" ;这是多选框输入。很明显,多选输入值不会查询出结果。如何解决这个问题?有使用动态SQL实现的方法,如拼装成这样的SQL语句:select * from t...
Oracle中insert into select和select into的区别

Oracle中insert into select和select into的区别

在Oracle中,将一张表的数据复制到另外一个对象中。通常会有这两种方法:insert into select 和 select into from。前者可以将select 出来的N行(0到任意数)结果集复制一个新表中,后者只能将"一行"结果复制到一个变量中。这样说吧,select into是PL/SQL language 的赋值语句。而前者是标准的SQL语句。做一个简单测试,我们就可以很容易地看出两者的差别。首先,我们创建两个表,一个作为源表,一个作为目...
Oracle的pipelined函数实现高性能大数据处理

Oracle的pipelined函数实现高性能大数据处理

在plsql开发中,会涉及到一些大数据量表的数据处理,如将某记录数超亿的表的记录经过处理转换插入到另外一张或几张表。常规的操作方法固然可以实现,但时间、磁盘IO、redo日志等等都非常大。Oracle 提供了一种高级函数,可以将这种数据处理的性能提升到极限。这种函数称为管道函数。在实际项目中,管道函数会和表函数、数据流函数(即表函数和CURSOR结合)、数据集合、并行度一起使用,达到大数据处理的性能顶峰。下面是一个例子,将表t_ss_normal的记录插入...
flashback table快速恢复误删除的数据

flashback table快速恢复误删除的数据

在Oracle数据库操作中,经常会有不小心误删除数据、drop表的情况出现。以前,这种情况发生后,开发人员通常会去求助DBA或管理者,使用数据库备份恢复去找回这些数据。从oracle 9i、10g开始,你可以不必去用备份来恢复了。有一种快速恢复方法,称之为flashback。你可以flashback query,也可以flashback table。一、FLASHBACK QUERY适应范围:表中的数据持续变化,需要看到某个时间点错误删除修改了某些记录,可...
Oracle delete 高水位线处理问题

Oracle delete 高水位线处理问题

最近遇到Oracle 表中数据量很大查询和更新比较慢 需要删除,发现删除后查询速度还是很慢,原来是delete oracle 高水位没有下降的原因。在oracle里,使用delete删除数据以后,数据库的存储容量不会减少,而且使用delete删除某个表的数据以后,查询这张表的速度和删除之前一样,不会发生变化。因为oralce有一个HWM高水位,它是oracle的一个表使用空间最高水位线。当插入了数据以后,高水位线就会上涨,但是如果你采用delete语句删除...
Oralce水平分表现有表再进行拆分

Oralce水平分表现有表再进行拆分

接这一篇《Oralce水平分表》http://www.linuxidc.com/Linux/2012-09/70991.htm,发现按照上面水平拆表把表按照年存储到每个分区表中。由于业务推广后按照年分表数据量还是很大。那么我们考虑能不能再年表中在进行拆分。下面介绍一下拆分步骤。原表结构(只看分区情况):从上面图我们可以看出如WLKP_FP_DATA_2012 分区存储在表空间WLKP_FP_DATA_2012里面那么时间过半了我们统计半年数据发现WLKP_...
Oralce水平分表

Oralce水平分表

工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。oracle 10 g 中提供下面三中分区:1)范围分区(Range partition)2) 哈希分区(Hash partition)3)列表分区(List partition)由于水平有限下面重点介绍范围分区范围分区,顾名思义,就是根据表的某个字段的值,以固定的一个范围作...
Linux x86主机运行天数是24.8的倍数都有可能引发Oracle bug及解决方法

Linux x86主机运行天数是24.8的倍数都有可能引发Oracle bug及解决方法

问题是因后台无法登录发现该BUG的,连PLSQL及服务器上的Oracle DBA也无法登录oracle查看系统相关资源:负载高,系统层的CPU使用高, 解决方法: 重启服务器,问题解决通过查找原因:得到以下BUG而引起问题的所在Oracle版本是10.2.0.1。只要Linux x86主机运行天数是是24.8的倍数都有可能引发该bug(刚刚好上面系统运行的时间是198天),因为time()函数值为null,造成无限死循环,从而耗尽cpu。 该Oracle ...
Oracle中的程序包

Oracle中的程序包

一程序包的基本概念程序包可将若干函数或者存储过程组织起来,作为一个对象进行存储。程序包通常由两部分构成,规范(specification)和主体(body)。程序报也可以包含常量和变量,包中的所有函数和存储过程都可以使用这些变量或者常量。二 规范1 创建规范(SQL窗口)create or replace package pkg_staff as staffString varchar2(500); stafftAge number:=18; functi...
<< 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 >>