北大青鸟oracle学习笔记19 20 21 22
游标
指向上下文区域的句柄或指针
游标在服务器段存储
属性
%NOTFOUND 没有找到结果或没有操作成功
%FOUND 找到结果或操作成功
%ROWCOUNT 游标影响的行数
%ISOPEN 游标是否打开 隐式游标系统自动维护,永远为假
类型:
静态游标
-隐式游标
在oracle内部声明
用于处理DML语句和返回单行的查询
SQL为隐式游标默认名称,例:
begin
insert into student values('3','test','m',sysdate);
dbms_output.put_line('游标影响的行数:'||SQL%ROWCOUNT);
end;
-显式游标
由用户显示声明
游标指向活动集的当前行
控制显示游标
Open 打开游标
Fetch … into …
Close 关闭游标
declare
cursor stuCur is select * from student;
stuRow student%rowtype;
begin
open stuCur;
loop
fetch stuCur into sturow;
exit when stuCur%NotFound;
dbms_output.put_line(sturow.stu_name);
dbms_output.put_line(stuCur%RowCount);
end loop;
close stuCur;
end;
REF游标(动态游标)
在运行时使不同的语句与之关联
REF游标使用游标变量
游标变量:一种引用类型,可以在运行时指向不同的存储位置,close语句关闭游标并释放用于查询的资源。
类型:
有约束的游标变量:具有返回类型 定义游标时加上return 游标类型
declare
type RefstuCur is ref cursor return stu%rowtype;
stuCur RefstuCur;
sturow student%rowtype;
flag int :=0;
begin
flag := &flag;
if flag = 0 then
open stucur for select * from student where stu_id <= '2';
else
open st
相关文档:
查看正在执行的sql语句
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
捕捉运行很久的SQL
select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......
PL/SQL
块结构
DECLARE
声明部分
BEGIN
可执行部分
EXCEPTION
异常处理部分
END;
例:
首先我们看一个简单之例子,下面这个例子是统计从1 ......
IP 地址做如下修改:
Public IP 10.85.10.119/121 -- > 10.85.10.219/221
Privite IP 192.168.1.119/121 -- > 192.168.1.219/221
Virtual IP 10.85.10.122/123 -- ......
1、Oracle的Package除了把存储过程放到一堆儿以外还有没有其他的作用(好处)?
2、如何把现有的存储过程加入到Package中?
3、除了使用SQL Plus,还有没有什么工具做Package?
4、使用SQL Plus编译Package,是否每次都是编译Package中所有的存储过程?
1、你不觉得把存储过程分门别类是很重要的么,而且不同的package的 ......
关键字: oracle cast() 函数问题
SQL> create table t1(a varchar(10));
Table created.
SQL> insert into t1 values ('12.3456');
1 row created.
SQL> select round(a) from t1;
ROUND(A)
----------
12
SQL> select round(a,3) from t1;
ROUN ......