【PL/SQL 学习】隐式游标学习
2023-09-14 08:57:16 时间
--oracle 会为每一个非显示游标的sql dml 语句都创建一个隐式游标,隐式游标也称为sql 游标。与显示游标不同,不能对一个隐式游标执行open,close和fetch语句。oracle 隐式的打开sql游标,处理sql游标,然后再关闭该游标。
declare
vid t.object_id%type;
vowner t.owner%type;
begin
select object_id ,owner into vid,vowner from t where rownum
if sql%isopen then
dbms_output.put_line(it is not possiable);
else
dbms_output.put_line(vid is ||vid|| vowner is ||vowner);
dbms_output.put_line(%isopen 的属性为false);
end if;
end;
输出为:
vid is 1 vowner is SYS
%isopen 的属性为false
--和显示游标一样,隐式游标也有四大属性%FOUND,%ISOPEN,%NOTFOUND,%ROWCOUNT.由于隐式游标没有名次,oracle提供了一种方法在属性前面加 关键字 SQL,这样我们就可以使用这些属性了。
例子如下:
declare
vid t.object_id%type;
vowner t.owner%type;
rowsnum integer;
begin
select object_id ,owner into vid,vowner from t where rownum
rowsnum := sql%rowcount;
dbms_output.put_line(vid is ||vid|| vowner is ||vowner);
dbms_output.put_line(rowsnum is ||rowsnum);
if sql%found then
dbms_output.put_line(sql%found is true;);
else
dbms_output.put_line(sql%found is false;);
end if;
if sql%notfound then
dbms_output.put_line(sql%notfound is true;);
else
dbms_output.put_line(sql%notfound is false;);
end if;
end;
输出为:
vid is 1 vowner is SYS
rowsnum is 1
sql%found is true;
sql%notfound is false;
数据库小技能:PL/SQL中书写定义sql 触发器由数据库管理系统负责调用和执行,通过触发触发器所监听的事物来实现触发器的调用。 表级别的触发器(对于整个数据库表做监听) 行级别的触发器(对于表中的每一行做监听)
数据库小技能:PL/SQL(Procedure Language/SQL,过程化SQL语言)预备知识 过程化SQL语言(Procedural Language/SQL)是Oracle数据库对SQL语句的扩展:在普通SQL语句的使用上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
declare
vid t.object_id%type;
vowner t.owner%type;
begin
select object_id ,owner into vid,vowner from t where rownum
if sql%isopen then
dbms_output.put_line(it is not possiable);
else
dbms_output.put_line(vid is ||vid|| vowner is ||vowner);
dbms_output.put_line(%isopen 的属性为false);
end if;
end;
输出为:
vid is 1 vowner is SYS
%isopen 的属性为false
--和显示游标一样,隐式游标也有四大属性%FOUND,%ISOPEN,%NOTFOUND,%ROWCOUNT.由于隐式游标没有名次,oracle提供了一种方法在属性前面加 关键字 SQL,这样我们就可以使用这些属性了。
例子如下:
declare
vid t.object_id%type;
vowner t.owner%type;
rowsnum integer;
begin
select object_id ,owner into vid,vowner from t where rownum
rowsnum := sql%rowcount;
dbms_output.put_line(vid is ||vid|| vowner is ||vowner);
dbms_output.put_line(rowsnum is ||rowsnum);
if sql%found then
dbms_output.put_line(sql%found is true;);
else
dbms_output.put_line(sql%found is false;);
end if;
if sql%notfound then
dbms_output.put_line(sql%notfound is true;);
else
dbms_output.put_line(sql%notfound is false;);
end if;
end;
输出为:
vid is 1 vowner is SYS
rowsnum is 1
sql%found is true;
sql%notfound is false;
数据库小技能:PL/SQL中书写定义sql 触发器由数据库管理系统负责调用和执行,通过触发触发器所监听的事物来实现触发器的调用。 表级别的触发器(对于整个数据库表做监听) 行级别的触发器(对于表中的每一行做监听)
数据库小技能:PL/SQL(Procedure Language/SQL,过程化SQL语言)预备知识 过程化SQL语言(Procedural Language/SQL)是Oracle数据库对SQL语句的扩展:在普通SQL语句的使用上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
相关文章
- nested_initialization error sql*net
- MS SQL Server游标(CURSOR)的学习使用
- MySQL学习(一) SQL基本操作详解数据库
- mybatis sql循环的使用详解编程语言
- Oracle数据库表连接SQL技术指南(oracle表连接sql)
- MySQL学习笔记:创建表的SQL语句(mysql创建表的sql)
- 「MySQL 教程」学习如何拼接 SQL 语句,让你的操作更灵活高效(mysql拼接sql语句)
- 深入学习Oracle SQL基础知识(oracle的sql基础)
- 优化MySQL数据库性能优化:克服耗时SQL问题(mysql耗时sql)
- 优化Oracle数据库SQL优化实践指南(oracle执行sql)
- 轻松学会:Oracle SQL 格式化技巧(oracle格式化sql)
- Sql server 数据库手工注入语句集合
- 学习资源解放双手,用网络探索SQL Server学习资源(如何找sqlserver)
- SQL和MSSQL:异曲同工的数据库系统(sql和mssql的区别)
- SQL Server菜鸟:初次尝试学习之旅(sqlserver 菜鸟)
- 析SQL Server数据库的平均值分析(sqlserver平均分)
- SQL Server实现多对多关系的绝佳方案(sqlserver多对多)
- SQL Server域约束:现实中的有效工具(sqlserver域约束)
- 字符串Oracle SQL中如何判断字符串(oracle sql判断)
- MySQL如何进行批量导入SQL数据?(mysql批量导入sql)
- adoop数据处理利器:SQL Server与Hadoop(sqlserver.h)
- 学习MySQL使用SQL语句的技巧(mysql sql语句)
- Mysql执行SQL文件的快速解决方案(mysql执行sql文件)
- Oracle中学习SQL语句的有效技巧(oracle中sql代码)
- 理解Oracle SQL中AS的使用方式(oracle sql里as用法)
- Oracle SQL文档学习必备权威指南(oracle sql文档)
- Sql学习第一天——SQL练习题(建表/sql语句)
- Sql学习第三天——SQL关于withties介绍