oracle中execute immediate的使用(select/insert/update/delete) execute immediate的语法如下:
execute immediate 'sql';
execute immediate 'sql_select' into var_1, var_2;
execute immediate 'sql' using [in|out|in out] bind_var_1, [in|out|in out] bind_var_2;
execute immediate 'sql_select' into var_1, var_2 using [in|out|in out] bind_var_1, [in|out|in out] bind_var_2;
execute immediate 'sql' returning into var_1;
execute immediate 'sql' bulk collect into indexed_var;
用法实例:
Declare
v_table varchar2(20);
v_sql Varchar2(100);
Begin
v_table:='hqf.testtable';
v_sql:='select * from '||v_table;
dbms_output.put_line(v_table);
dbms_output.put_line(v_sql);
Execute Immediate v_sql;
End;
Declare
v_sid Integer:=20020101;
v_sql Varchar2(100);
v_result Varchar2(50);
Begin
--v_sid:=12;
v_sql:='Select loc into v_result from scott.dept d where d.deptno=:1 ';
dbms_output.put_line(v_sql);
--dbms_output.put_line(v_result);
Execute Immediate v_sql
Using 10 ;
Commit;
End;
--动态命令的实用参考一( select ..into)
--Execute immediate 命令在使用into关键字时与静态的plsql块中
--into关键字使用方法上的区别。
declare
v_result varchar2(20);
begin
execute immediate 'select dname from scott.dept d where d.deptno=:1' Into v_result --:1这是一个绑定变量
Using 70;
commit;
dbms_output.put_line('结果为:'||v_result);
end;
--绑定变量,通俗的讲就是一个占位的参数,而后用using中的常量或着变量去找它的相应
Declare
v_result Varchar2(20);
Begin
Select dname Into v_result From scott.dept d Where d.deptno=10;
dbms_output.put_line(v_result);
End;
declare
v_result varchar2(20);
begin
execute immediate 'select dname from scott.dept d where d.deptno=:1' Into v_result
Using 70;
commit;
dbms_output.put_line('结果为:'||v_result);
end;
--动态命令的实用参考一( insert ..into)
--
Begin
Execute Immediate 'insert into scott.dept values (:1,:2,:3) '
Using 70,'IT','Beijing';
Commit;
End;
declare
l_depnam varchar2(20) := 'testing';
l_loc varchar2(10) := 'Dubai';
begin
execute immediate 'insert into scott.dept values (:1, :2, :3)'
using 60, l_depnam, l_loc;
commit;
end;
---尽享动态执行sql的execute immediate的命令使用的魅力。
--对比静态的测试,和动态测试。
Declare
v_result Varchar2(20);
Begin
v_result:=mypackage.myfun1(10);
dbms_output.put_line(v_result);
mypackage.mypro1(20020101,v_result);
dbms_output.put_line(v_result);
End;
--Select * From student s Where s.student_id=20020101;
---Select * From testtable Where recordnumber=10;
Declare
v_result Varchar2(20);
Begin
--动态执行函数
Execute Immediate 'begin :1:=mypackage.myfun1(:2); end;'
Using Out v_result,In 10;
Commit;
dbms_output.put_line(v_result);
--动态执行存储过程
Execute Immediate 'begin mypro1(:1,:2); end;'
Using In 20020101,Out v_result;
Commit;
dbms_output.put_line(v_result);
End;
--动态执行update语句实例:
create or replace function f_testweekday
return integer
is
v_sql varchar(2000);
i_sendcount integer;
begin
--_' || f_getweekday() || '
v_sql := 'update t_push_smstemp_inform set sendcount=sendcount+1 returning sendcount into :1';
execute immediate v_sql using out i_sendcount;
return 0;
exception
when others then
rollback;
return 0;
end f_testweekday;
分享到:
相关推荐
3. **异常处理**:在PL/SQL中,异常处理是通过EXCEPTION关键字实现的,用于捕获并处理运行时错误。手册会详细解释如何定义和使用预定义及自定义异常。 4. **数据库操作**:PL/SQL与Oracle数据库紧密集成,可以执行...
除了为读者提供编写sql语句和开发pl/sql块的方法外,本书还为应用开发人员提供了一些常用的pl/sql系统包。通过使用这些pl/sql系统包,应用开发人员可以开发出功能更强大的数据库应用程序。本书不仅适合sql和pl/sql...
在实际工作中,这样的工具通常会提供友好的图形用户界面(GUI),方便用户编写和执行PL/SQL代码,同时可能还包含调试、代码提示、自动完成、数据库对象浏览器等功能,极大地提升了数据库管理员和开发人员的工作效率...
一旦客户端安装完成,就可以通过PL/SQL Developer创建连接,管理数据库对象,执行SQL语句,调试PL/SQL代码,以及进行其他数据库相关的开发工作。 在【压缩包子文件的文件名称列表】中提到的"PLSQL Developer 12...
PDC文件是用来定义执行顺序的文本文件,通过它可以在PL/SQL Developer中指定要执行的一系列命令。 #### 三、编写PDC文件 打开`batch.pdc`文件,在其中编写以下内容: ```sql conn user_name1/password@database1;...
本书是专门为oracle应用开发人员提供的sql和pl/sql编程指南。通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法...
手册会描述这些面向对象特性如何在PL/SQL中实现,并提供示例代码帮助理解。 最后,Oracle PL/SQL Language Reference 11g Release 2 (11.2)还会提供关于PL/SQL与其他技术的集成信息,比如与Oracle SQL Developer的...
本书是专门为Oracle应用开发人员提供的SQL和PL/SQL编程指南。通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,...
PL/SQL是Oracle数据库系统中的一个编程语言,用于在数据库中执行复杂的业务逻辑和数据处理。这个"PL/SQL中文包"显然是为了帮助中国用户更好地理解和使用PL/SQL而设计的,它可能包含了中文版的文档、教程、错误消息...
《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...
- **游标变量**:用于存储游标状态,可以在PL/SQL中传递和操作。 - **包**:将相关的过程、函数和变量打包在一起,便于管理和重用。 6. **PL/SQL性能优化** - **绑定变量**:减少解析次数,提高执行效率。 - **...
第一章 PL-SQL一览 第二章 PL-SQL基础 第三章 PL-SQL数据类型 第四章 PL-SQL的控制结构 第五章 PL-SQL集合与记录(1) 第六章 PL-SQL集合与记录(2) ...第十二章 本地动态SQL 第十三章 PL-SQL应用程序性能调优
在Oracle数据库管理中,PL/SQL是一种过程式语言,常用于构建复杂的数据库应用。7.1.4版本是该软件的一个特定迭代,可能包含了一些新功能、性能优化或bug修复。 汉化包是指将原版软件的英文界面翻译成中文,以便于...
在PL/SQL中,主要包含以下核心概念: 1. **块结构**:PL/SQL程序的基本单元是块,包括声明部分、执行部分和异常处理部分。声明部分用于定义变量和常量,执行部分包含语句和控制结构,异常处理部分处理程序运行时...
- 动态SQL:PL/SQL允许动态构建SQL语句,根据程序运行时的条件执行不同的查询。 - 触发器:PL/SQL可以创建触发器,当满足特定数据库事件(如INSERT、UPDATE或DELETE)时自动执行。 - 存储过程和函数:PL/SQL定义...
标题中的“pl/sql developer11.0”指的是该软件的第11个主要版本。在本文中,我们将深入探讨PL/SQL Developer的功能、特性以及它在Oracle数据库开发中的作用。 PL/SQL(Procedural Language/Structured Query ...
本教程主要围绕Oracle数据库中的SQL和PL/SQL进行实例教学。 在SQL部分,我们首先了解到SQL的主要特点和分类。SQL语言能在Oracle数据库中执行多种任务,如创建、查询、更新和删除数据。其特点是书写简洁,易读性强,...
PL/SQL Developer的调试器是其一大亮点,它支持设置断点、单步执行、查看变量值、调用堆栈等调试功能,帮助开发者追踪和定位程序中的错误。 5. **数据查看与操作** 工具内置了数据浏览和操作功能,可以直接在结果...
3. **存储过程和函数**:PL/SQL支持创建可重复使用的存储过程和函数,这些在数据库中执行的代码可以接受参数,返回结果。 4. **游标**:允许逐行处理查询结果,常用于动态处理数据。 5. **包(PACKAGE)**:将相关...