- 浏览: 12564 次
- 性别:
- 来自: 湖南
最新评论
文章列表
防重复插入SQL
插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作。怎么样才能保证不会插入重复的记录呢? 通过使用 EXISTS 条件句防止插入重复记录。
一、 插入单条记录
在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作。
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
所谓的读一致性,就是sql语句的结果对于查询开始的时间点来说是一致的! 正是因为这一点,下面的sql语句可以插入可以预知的数据集:
insert into t select * from t;
这个insert 语句在之前得到了一个t 表的读一致性视图,它看不到刚刚插入的数据行,而只是在insert操作刚开始时候的记录行,所以不用担心在Insert过程中,因为不断的插入,导致select 出来的结果无止境的问题,有效的解决了这个看是死循环问题!
非阻塞读
很多数据库为了读取数据的一致性,会在读取的时候加锁,大概分为两种锁的机制:
1.读取的时候,给整张表加上锁,在读取的这一 ...
SCN:system Change Number /system commit number : 系统修改号/系统提交号,scn是oracle内部时钟,每次发生提交的时候,这个时钟(scn)都会自动滴答(递增更新),这个scn很容易得到:
declare
v_scn number;
begin
exec v_scn:= dbms_flashback.get_system_change_number;
dbms_put.put_line('scn:' || v_scn);
end;
有了scn,我们就可以告诉oracle我们要查询的时间点,以后查询的时候,就可以只看这个时间点上 ...
1. 背景
随着表中数据的不断增长,表的高水位也被不断的推高。当高水位达到一定程度之后,会对该表上的SQL查询效率产生负面影响,因此需要采取有效措施降低高水位。有时候即便是表中数据很少,一条全表扫描的sql仍然很慢,有时候表的数据很少,但是仍然占用很多空间,这些都是高水位在作怪。
2. 准备知识
Oracle 的逻辑存储结构可简单表示为:表空间——>段——>区——>块。
//模拟xmlHttpRequest请求 var xmlHttpRequest = null; function Ajax(){ if(window.ActiveXObject){ xmlHttpRequest = new ActiveXOjbect("Microsoft.XMLHTTP"); }else if(window.XMLHttpRequest){ xmlHttpRequest = new XMLHttpRequest();//实例化XMLHttpRequest对象 } xmlHttpRequest.open("GET",&qu ...
1.如何获得执行计划
要为一个语句生成执行计划,可以有3种方法:
1.1. autotrace
Sql> set autotrace on
Sql> select * from dual;
执行完语句后,会显示explain plan 与 统计信息。
这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。
如果不想执行语句而只是想得到执行计划可以采用:
Sql> set autotrace traceonly
这样,就只会列出执行计划,而不会真正的执行语句,大大减少了优化时间。虽然也 ...
一.gzip [-cdt#] ,zcat-c:将压缩内容输出到屏幕上,可以使用数据重定向进行导出-d:解压缩命令-t:检查压缩文件是否完整-#[0-9]:表示压缩的时候选择的压缩比,数值越大压缩比越好,速度越慢zcat:读取压缩文件内容进行显示gzip -c -9 aa ...
1.Linux 更改文件权限之:chgrp,chown,chmod
chgrp: 更改文件所属用户组 :chgrp [-R](recursive:进行递归的持续更改) 用户组名 filename;
chown:更改文件拥有者:chown [-R] 用户/用户:用户组 fileName
chmod:更改文件属性,属性的设置方式有两种,分别可以使用数字或者是符号
数字类型更改文件权限:
Linux文件有9个基本属性:-rwxrwxrwx,这九个属性中三个为一组,可以使用数字来表示各个属性:
r:4
w:2
x:1
将同一组的三个属性值累加例如上面( ...
1 配置Oracle 10g安装环境... - 2 -
2 开始安装Oracle 10g. - 3 -
3 Oracle 10g窗口安装具体过程... - 4 -
4 配置数据库自动启动或关闭... - 13 -
附录: VNC使用方法... - 14 -
这里以在AS5U2上安装oracle10R2(64位)为例
1 配置Oracle 10g安装环境
说明:Oracle10g版本统一使用Oracle10gR2,只需执行一个安装脚本文件即可完成Oracle 10g安装环境的配置,安装脚本主要完成补丁包安装、创建oracle用户和目录,配置内核参数、配置orac ...
xml解析-续-之Pull
- 博客分类:
- xml
/*** 采用pull解析xml内容* 建议平时使用pull 解析器解析xml 文档,容易理解
* @author Administrator**/
/*** 获取员工信息* @param xmlInputStream* @return* @throws Exception*/public static List<Person> getPerson(InputStream xmlInputStream)throws Exception{List<Person> persoList =null;Person person =null;
XmlPullParse ...
Sax 解析:
public class SaxXml {
public static List<Person> getXml(InputStream inputStream) throws Exception {
//获取解析工厂
SAXParserFactory factory =SAXParserFactory.newInstance();
//解析器
SAXParser saxParser = factory.newSAXParser();
//实例化解析器所需要的halder对象
SaxHalder saxHalder = new SaxHal ...
最近在研究xml解析方式,觉得几种方法都还可以!今天把他记下来与大家分享一下!代码是自己写的!过程中有错误的话!还望指正!
public static void main(String[] arrs){
InputStream inputStream = this.getClass.getClassLoad.getResourceAsStream("context.xml"); //得到inputStream
List<Person> perList = new ArrayList<Person>();Person person = null;
...
--异常
declare
v_ename varchar2(50);
begin
select ename into v_ename from emp;
exception
when too_many_row then
v_name='too_many_row exception';
end;
--自定义异常
declare
v_excep exception;
begin
update set ename='tina' where empno=10000;
if sql%notfound then --如果没有更新数据
raise v_excep --thr ...
--语句块
conn scott/tiger;
declare
v_ename varchar2(10);
begin
select ename into v_ename from emp;
end;
--create procedure single result
creaate or replace procedure pro_getName(v_empno in number,v_ename out varchar2) is
begin
select ename into v_ename from emp where empno=v_empno ...