Oracle数据库之FORALL与BULK COLLECT语句 我们再来看一下PL/SQL块的执行过程:当PL/SQL运行时引擎处理一块代码时,它使用PL/SQL引擎来执行过程化的代码,而将SQL语句发送给SQL引擎来执行:SQL引擎执行完毕后,将结果再返回给PL/SQL引擎.这种在PL/SQL引擎和SQL引擎之间的交互,称为上下文交换(context switch).每发生一次交换,就会带来一定的额外开销.下面是一个示意图: 从Oracle 8i开始,PL/SQL得到了两点增强,可以将PL/S…
FORALL与BULK COLLECT的使用方法: 1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换. 2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下.但BLUK COLLECT需要大量内存. 例子: create table test_forall ( user_id number(10), user_name varchar2(20)); select into 中使用bulk c…
Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.username 用户名, s.machine 主机名, s.module 程序名, t.addr 事务ID, t.status 事务状态, t.start_time 事务开启时间 from v$session s, v$transaction t where t.addr = s.taddr order by…
ORACLE 账号相关 如何获取表及权限 1.COPY表空间backup scottexp登录管理员账号system2.创建用户 create user han identified(认证) by mima default tablespace users(默认的表空间) quota(配额)10M on users;创建账号分配权限grant creatr session,create table,create view to 账号grant connect to han; 赋予账号han登录权…
如果表结构只对应一个字段,可以 select col1 bulk collect into 变量,不用游标循环,简洁高效 create or replace function get_airway_subpoint(awid in number) return airway_subpnts_tab is --CREATE OR REPLACE TYPE AIRWAY_SUBPNTS_TAB  as table of number(11) v_ptns airway_subpnts_tab; --…
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 from emp; 4. select job from emp; 5. select distinct job from emp; 6. select distinct empno, job from emp;说明:因为雇员编号不重复, 所以此时证明所有的列没有重复,所以不能消除掉重复的列. 7. 查询…
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 from emp; 4. select job from emp; 5. select distinct job from emp; 6. select distinct empno, job from emp;说明:因为雇员编号不重复, 所以此时证明所有的列没有重复,所以不能消除掉重复的列. 7. 查询…
SELECT b.sql_text, --content of SQL a.machine, --which machine run this code a.username, a.module, -- the method to run this SQL c.sofar / totalwork * 100, --conplete percent c.elapsed_seconds, --run time c.time_remaining --remain to run time FROM v$…
select table_name from user_tables…
create or replace procedure trun_table(table_deleted in varchar2) as --创建一个存储过程,传入一个表示表名称的参数,实现清空指定的表 cur_name integer;--定义内部变量,存储打开的游标 begin cur_name := dbms_sql.open_cursor;--打开游标 dbms_sql.parse(cur_name,'truncate table'||table_deleted ||'drop stor…