解析并马上执行动态语句 ,或非运行时创建的pl/sql块 1. 不提交dml事务,要显式提交; execute immediate处理ddl,会提交所以以前改变的数据; 2.不支持多行查询,可以临时表 或者ref cursors 3.执行sql不需语句,执行pl/sql 要加分号; --0.传入 declare i_aac001 number(6):=111; begin execute immediate 'insert into a2(aac001) values(:1)' using i_aac001; end; insert into a2(aac001) values(1); insert into a2(aac001) values(2); --1.传入/传出 declare cnt number(6); begin execute immediate 'select 1 from dual where 1=:1' into cnt using cnt; dbms_output.put_line(cnt); end; --2.调用存储过程 declare s1 varchar2(10); s2 varchar2(10); begin execute immediate 'begin test1(:1,:2); end;' using s1,s2; end; --3.传值到记录 declare --类型 --声明 type type_a is record(str varchar2(10)); v_a type_a; v_b a2%rowtype; begin execute immediate 'select * from a2 where aac001=1742178' into v_b; end; --4.多行查询 用临时表 或ref cursors declare l_sal pls_integer := 2000; begin execute immediate 'insert into temp(empno, ename) ' || ' select empno, ename from emp ' || ' where sal > :1' using l_sal; commit; end; http://baiyaoming.iteye.com/blog/1255016 for in 变量声明类型 ------------------------------- declare cursor cur is select * from a2; begin for c in (select * from a2) loop dbms_output.put_line(c.aac002); end loop; end; insert into a2(aac001) values(1); declare type t_a is table of a2%rowtype; type t_b is table of number(10) index by pls_integer; v_a t_a; v_b t_b; begin select aac001 bulk collect into v_b from a2; for i in v_b.first..v_b.last loop dbms_output.put_line(v_b(i)); end loop; end;
发表评论
-
adb命令
2012-08-09 14:28 1300ADB install app.apk ADB shell ... -
sqlite3
2012-08-09 13:02 922.mode column; .header on; al ... -
Oracle 10G:PL/SQL正规表达式(正则表达式)
2012-03-23 18:47 750Oracle 10G:PL/SQL正规表达式(正则表达式) ... -
生产区重新部署web
2012-03-09 22:38 662http://middleware123.com/weblog ... -
procedure 学习
2012-03-09 10:54 757http://hi.baidu.com/test2704/bl ... -
dblink
2012-03-09 10:05 4688三. 创建DBLINK的方法: 1. create p ... -
oracle 子分区
2012-01-30 10:43 3875--1.创建表空间 create tablespace ... -
厅表tp_ac01
2011-10-25 20:18 0create table tp_ac01 as select ... -
oracle 添加定时任务
2011-09-16 16:31 923--submit select * from repor ... -
decode和case的参数区别 timestamp date
2011-08-23 14:58 862SELECT DECODE('AA ', 'AA', '= ... -
oracle 用一个表更新另一个表
2011-07-11 10:19 29951.生成临时表 update (select a.aaa,b. ... -
semi join anti-join
2011-07-06 17:24 0使用in exists 用semi-join set aut ... -
终止oracle正在执行的存储过程
2011-06-14 14:13 4842--查看运行的procedure (表提供对象在libra ... -
oracle 并行
2011-05-13 14:52 0多的的地对地导弹的 -
oracle 级联查询 级联求和 汇总
2011-04-29 15:12 2613级联查询 select level||'层',lpad ... -
oracle中文日期 Oracle数据库中的''与NULL的
2011-04-13 10:48 1197转自:http://micki.blogbus.com/log ... -
[转]无法启动oracleDBConsole的解决方案之一
2011-02-21 22:24 928http://www.iteye.com/topic/6472 ... -
oracle触发器与存储过程(第10章)
2011-02-09 17:09 0--包调用方式 biology_degrees integer ... -
pk_imp_benefit(未完成)
2011-02-09 11:26 0n_sql := 'select ffqsny,yhzh00 ... -
sql迁移到oracle
2011-01-31 22:26 998用oracle专用工具 jdk 1.6_1 ...
相关推荐
Oracle中EXECUTE IMMEDIATE用法
execute immediate 用法研究 为初学者打造。
oracle动态sql之EXECUTE IMMEDIATE.docx
OCILIB是一个便携式Oracle驱动程序,可提供非常快速和可靠地访问Oracle数据库。它提供了一个丰富,功能齐全,并易于使用的API 。OCILIB
EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.
插入字符串作为 Oracle EXECUTE IMMEDIATE 语句 用法:编辑 -> 转换为 PHP 字符串(ctrl + alt + shift + P) 安装: 下载ideaHelpfulPlugins.jar 在 phpStorm Settings -> Plugins -> Install plugin from disk...
在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要...EXECUTE IMMEDIATE 'DROP TABLE tableName'; END IF; END; 在Oracle中
execute immediate str_sql into tabtcn; --动态执行DDL语句
ORACLE 培训 动态SQL编写 EXECUTE IMMEDIATE用法 DBMS_SQL用法
整理的Oracle数据库游标使用大全 ...较好的PL/SQL程序设计是在PL/SQL块中使用象DBMS_SQL这样的内建包或执行EXECUTE IMMEDIATE命令建立动态SQL来执行DDL命令,PL/SQL编译器保证对象引用以及用户的权限。。。。。。
在ORACLE数据库杀掉会话进程有三种方式: 1:ALTER SYSTEM KILL SESSION 关于KILL SESSION Clause ,官方文档描述alter system kill session实际上...Specify IMMEDIATE to instruct Oracle Database to roll back on
linux oracle 12c 自动启动.docx Oracle12c2 开机自动启动 触发器 SQL> create or replace trigger open_pbds ... 4 execute immediate 'ALTER PLUGGABLE DATABASE ALL OPEN'; 5 end open_pdbs; 6 /
重置oracle序列从指定数字开始 代码如下: declare n number(10);...–序列名 begin execute immediate ‘select ‘||v_seqname||’.nextval from dual’ into n; n:=v_startnum-n-v_step;–从10000001开始 tsql:=’alt
在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友... EXECUTE IMMEDIATE ‘SELECT ‘ || p_seqName || ‘.NEXTVAL FROM dual ‘ INTO n; n := – (n – 1); tsql :
execute immediate v_sql into v_count; p_OutRecordCount := v_count; ----执行分页查询 v_heiRownum := p_PageNo * p_PageSize; v_lowRownum := v_heiRownum - p_PageSize + 1; v_sql := 'SELECT * FROM ...
EXECUTE IMMEDIATE stmt; end if; end; --- create or replace trigger SYS.aurora$server$startup after startup on database call dbms_java.server_startup -- create or replace trigger SYS.JIS$ROLE_...
begin /*这里不能直接执行select语句但可以直接执行update、delete、insert语句*/ end里面不能接执行select语句,声明会话级临时表必须有“execute immediate 'TRUNCATE TABLE 表名';”这一句不然其他的session无法...
第一种:不设置输出格式参数,即用默认的 SQL> create or replace procedure sql_explain(v_sql varchar2) ... 7 execute immediate 'explain plan for '||v_sql; 8 open explain_cursor fo
DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。 EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。 自定义角色 ...
如果你不小心覆盖了之前的存储过程,那得赶紧闪回,时长越长闪回的可能性越小。原理很简单,存储过程的定义就是数据字典,修改数据字典跟修改普通表的... 10000 loop execute immediate ‘select count(*) from t where