`

Oracle 绑定变量的用法

阅读更多
1.让Oracle自己绑定变量
set serverout on;
set timing on;
declare
l_sql varchar2(2000);
l_count number;
l_param1 varchar2(100);
l_param2 varchar2(100);
begin
l_param1:=’a';
l_param2:=’b';
select count(*) into l_count from table1 where col_1=l_param1 and col_2=l_param2;
dbms_output.put_line(l_count);
end;
/
在上面的情况,Oracle会自己绑定变量,即,如果参数保存在一个数组中,select语句放在一个循环中,
select 语句只会编译一次。
像这样
for i in 1..3
loop
select count(*) into l_count from table1 where col_1=l_param1 and col_2=l_param2 and col_3=i;
dbms_output.put_line(l_count);
end loop

2.不绑定变量
set serverout on;
set timing on;
declare
l_sql varchar2(2000);
l_count number;
l_param1 varchar2(100);
l_param2 varchar2(100);
begin
l_param1:=’a';
l_param2:=’b';
l_sql:=’select count(*) into :x from table1 where col_1=’||l_param1||’ and col_2=’||l_param2;
Execute Immediate l_sql into l_count;
dbms_output.put_line(l_count);
end;
/
3.动态绑定变量
set serverout on;
set timing on;
declare
l_sql varchar2(2000);
l_count number;
l_param1 varchar2(100);
l_param2 varchar2(100);
begin
l_param1:=’a';
l_param2:=’b';
l_sql:=’select count(*) into :x from table1 where col_1=:y and col_2=:z ’;
Execute Immediate l_sql into l_count using l_param1,l_param2;
dbms_output.put_line(l_count);
end;
/

:x,:y,:z相当于占位符,即
1.用:p1,:p2,:p3是一样的。
2.用:x,:x,:x也是一样的
需要的绑定变量按顺序排在执行语句后面就可以了,into的除外。
不过还是用p1,p2好些,至少可以看出绑定了多少个变量。
分享到:
评论

相关推荐

    在Java中实现Oracle变量的绑定方法 .doc

    为了解决这些问题,我们可以使用预编译的PreparedStatement对象来绑定变量,例如: ```java String sql = "select name from oms_user where id=?"; PreparedStatement pstmt = connection.prepareStatement(sql); ...

    oracle 数据库的绑定变量特性及应用

    在本文中,我们将详细地探讨绑定变量的目的、命名方法、使用限制条件和应用实例。 为什么使用绑定变量? 绑定变量是解决 Oracle 应用程序可伸缩性的一个关键环节。如果不使用绑定变量,每次查询都是一个新的查询,...

    PLSQL绑定变量用法小结归纳.pdf

    PLSQL绑定变量用法小结归纳 绑定变量是PLSQL中的一种强大工具,能够提高数据库的性能和可扩展性。在Oracle中,对于一个提交的SQL语句,存在两种可选的解析过程,一种叫做硬解析,一种叫做软解析。硬解析需要经解析...

    Oracle 中的变量绑定

    相反,如果使用绑定变量,Oracle会尝试在共享池(Shared Pool)中查找相同的基本SQL结构,如果找到,就进行软分析(Soft Parse),从而避免重复的工作。 不使用绑定变量的另一个负面影响是共享池中的SQL语句数量...

    如何绑定变量

    ### 如何绑定变量 在OLTP(Online Transaction Processing...通过以上方法,我们可以有效地在Oracle数据库中使用绑定变量来优化SQL语句的执行效率,特别是在OLTP系统中,这种方法对于提升系统的整体性能具有重要意义。

    sql绑定变量

    标题与描述中的“SQL绑定变量”这一知识点,主要聚焦于SQL语句中如何使用变量,尤其是在存储过程或函数中动态构建SQL语句...对于任何从事数据库开发或维护的专业人士来说,掌握绑定变量的使用方法都是必不可少的技能。

    PLSQL绑定变量用法小结[收集].pdf

    在Oracle数据库的PL/SQL环境中,绑定变量是一种优化SQL语句执行效率的重要技术。它主要应用于动态SQL或者多次执行的SQL语句,以...因此,理解和熟练掌握绑定变量的使用对于任何Oracle数据库开发者来说都是至关重要的。

    oracle biee变量总结

    ### Oracle BIEE 变量总结与应用 #### 一、引言 Oracle Business Intelligence Enterprise Edition (BIEE) 是一款强大的商业智能工具,能够帮助组织机构从数据中提取价值并做出更好的决策。在 BIEE 的开发过程中,...

    oracle变量绑定[文].pdf

    绑定变量的使用遵循了Oracle Shared Pool的设计理念,提高了SQL语句的复用性和系统整体性能。因此,在开发Java应用程序并与Oracle数据库交互时,应尽可能使用绑定变量,以优化数据库操作,提升系统效率。

    动态SQL与绑定变量

    动态SQL与绑定变量是数据库编程中的重要概念,尤其在Oracle数据库中被广泛应用。动态SQL允许在运行时构建和执行SQL语句,而绑定变量则是在动态SQL中用于替代具体值的占位符,使得SQL语句更为灵活和高效。 ### 1. ...

    Oracle中Using用法

    在 Oracle 中,使用 Using 语句可以实现动态 SQL 的绑定变量,提高 SQL 语句的灵活性和安全性。本文将对 Oracle 中 Using 用法进行详细的介绍,并提供实际开发的示例和技巧。 一、静态 SQL 和动态 SQL 在 Oracle ...

    java代码绑定时间

    本文将围绕“Java代码绑定时间”这一主题,深度剖析在Java程序中使用Oracle绑定变量的必要性及其对数据库性能的影响。 #### 一、硬解析与软解析:数据库性能的双刃剑 在Oracle数据库中,SQL语句的执行通常涉及两个...

    cx-oracle英文原版.pdf

    - 解释了连接字符串的使用方法和连接池的概念。 - 涉及了数据库驻留连接池(Database Resident Connection Pooling, DRCP)。 - 还有代理认证、外部认证和特权连接的建立方法。 ### 4. 连接池与安全连接...

    oracle 执行计划 详解

    为了优化执行计划,我们可以使用绑定变量、减少硬解析、配置 session_cached_cursors、高速缓存游标等方法。 绑定变量 使用绑定变量可以减少硬解析的数量。例如,在 SQL 语句中使用绑定变量 `:empno` 代替硬编码的...

    ORACLE 19C SQL调优指南 中文版 Oracle DBA

    3. **绑定变量**:使用绑定变量可以避免硬解析,提高SQL语句的重用性,减少解析开销。当SQL语句中的参数用绑定变量替代时,数据库只需解析一次,后续相同结构的查询将共享同一个执行计划。 4. **分区技术**:在大型...

    oracle dba 面试题总结

    本文将从 SQL 调优、执行计划、索引、绑定变量、执行计划稳定性、排序相关内存等方面对 Oracle DBA 面试题进行总结和解释。 一、SQL 调优 SQL 调优是 Oracle DBA 的核心任务之一。如何查看 SQL 的执行计划是 DBA ...

    Oracle数据库查询优化的方法

    综上所述,Oracle数据库查询优化涉及多个层面,包括SQL编写、索引设计、执行计划分析、绑定变量使用、物理设计优化、统计信息维护和资源管理工具的应用。掌握这些方法并灵活运用,可以显著提升Oracle数据库的运行...

    DBA面试题 oracle

    本文总结了 Oracle 数据库管理员(DBA)面试中的一些重要知识点,从表连接方式、执行计划、CBO 和 RBO、SQL 调整、索引、绑定变量、执行计划、排序等方面进行了详细的解释。 一、表连接方式 在 Oracle 中,表连接...

    cx_Oracle使用手册

    cx_Oracle模块还包含一些实用工具和扩展方法,例如cx_Oracle.Binary()用于创建二进制字符串值对象,cx_Oracle.clientversion()用于返回所使用的客户端库版本信息。请注意,cx_Oracle.clientversion()是一个扩展方法...

Global site tag (gtag.js) - Google Analytics