易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE 绑定变量用法总结

之前对ORACLE中的变量一直没个太清楚的认识,比如说使用:、&、&&、DEIFINE、VARIABLE……等等。今天正好闲下来,上网搜了搜相关的文章,汇总了一下,贴在这里,方便学习。
==================================================================================
 在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.
一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行),而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。
 而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。
 
1.
sqlplus中如何使用绑定变量,可以通过variable来定义
SQL> select * from tt where id=1;
ID NAME
---------- ----------------------------------------
1 test
SQL> select * from tt where id=2;
ID NAME
---------- ----------------------------------------
2 test
SQL> variable i number;
SQL> exec :i :=1;
PL/SQL 过程已成功完成。
SQL> select *from tt where id=:i;
ID NAME
---------- ----------------------------------------
1 test
SQL> exec :i :=2;
PL/SQL 过程已成功完成。
SQL> select *from tt where id=:i;
ID NAME
---------- ----------------------------------------
2 test
SQL> print i;
I
----------
2
SQL> select sql_text,parse_calls from v$sql where sql_text like 'select * from t
t where id=%';
SQL_TEXT PARSE_CALLS
------------------------------------------------------------ -----------
select * from tt where id=2 1
select * from tt where id=1 1
select * from tt where id=:i 2
SQL>
从上面试验发现绑定变量i的使用使查询id=1和i


相关文档:

Oracle ADF 简介

ADF是(Application Development Framework)的简称,它的前身是BC4J。 光听这个名字就知道它是一个end-to-end的框架。和Spring一样它在企业应用架构的每一个层次都提供了它的支持。ADF的架构如下图所示:
在每一层ADF都有它的一些组件。我这次主要想讲讲ADF的data binding,因为它隔离了业务逻辑层和web层,使得两个层次 ......

Oracle JDBC 自带连接池

 http://www.diybl.com/course/3_program/java/javajs/2008429/111906.html
如果要使用池的话,就必须使用OracleConnectionCacheImpl,共有三种池的策略:
DYNAMIC_SCHEME(是动态增加.用完如果超过上限则关掉)
The cache will create connections above the specified maximum limit
when necessary   but ......

Oracle未提供相应驱动

  本机电脑上有安装ORACLE10G的客户端,后来由于需要玩了一下ODAC,后来又卸载掉了。结果,使用C#进行连接的时候报:
        未在本地计算机注册“OraOLEDB.Oracle.1”提供程序
  然后,新建一个UDL进行测试,发现Oracle   Provider & ......

C# 读取和写入oracle的blob字段的方法

 //向数据库中写入
        private void button1_Click(object sender, EventArgs e)
        {
            oracleConnection1.Open();
      & ......

Oracle的rownum原理和使用(分页查询)

 
要显示1到2行则可以通过
select * from dangan where rownum between 1 and 2
在Oracle
中,要按特定条件查询前N条记录,用个rownum
就搞定了。
select *
from emp where rownum
<= 5
而且书上也告诫,不能对rownum
用">",这也就意味着,如果你想用
select * from emp
where row ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号