一:变量作用域
DECLARE
current_block VARCHAR2(10) := 'Outer';
outer_block VARCHAR2(10) := 'Outer';
BEGIN
dbms_output.put_line('[current_block]['||current_block||']');
DECLARE
current_block VARCHAR2(10) := 'Inner';
BEGIN
dbms_output.put_line('[current_block]['||current_block||']');
dbms_output.put_line('[outer_block]['||outer_block||']');
END;
dbms_output.put_line('[current_block]['||current_block||']');
END;
以上为引用一本书的代码(Oracle Database 11g PL/SQL程序设计)
输出为
[current_block][Outer]
[current_block][Inner]
[outer_block][Outer]
[current_block][Outer]
这是两个嵌套的程序块
我们在子程序块中重定义了父程序块的变量
这个变量在子程序块执行完之后又恢复了父程序块中定义的值
二:%type 取一个已知变量的数据类型
declare mytitle labor.xland.title%type;
begin
select title into mytitle from labor.xland where state = 0;
dbms_output.put_line(mytitle);
end;
上面例子中取了表title列的数据类型(varchar2)
然后检索了一行一列数据,把这个数据赋值给我们定义的变量mytitle
当然你也可以定义多个变量
如:
select title,id into mytitle,myid from labor.xland where state = 0;
三:%rowtype 取一个已知行的数据类型,这应该是一个对象类型
declare
myrow labor.xland%rowtype;
begin
select * into myrow from labor.xland where state = 0;
dbms_output.put_line(myrow.title);
dbms_output.put_line(to_char(myrow.state));
end;
上例中我们取了某个表的rowtype,并定义了变量myrow
接着把这个表的一行数据赋值给了这个变量
输出的时候只要以点来获取这一行的某个列即可
四:record 这应该也是一个对象
declare
type myrecordtype is record
(
mytitle labor.xland.title%type,
mystate labor.xland.state%type
);
myrecord myrecordtype;
begin
select title, state into myrecord from labor.xland;
dbms_output.put_line(myrecord.mytitle);
dbms_output.put_line(to_char(myrecord.mystate));
end;
如上代码
我们先定义了一种数据类型(type)
这种类型包含两个属性,分别是mytitle和mystate
然后我们定义了一个变量myrecord
这个变量的类型就是我们刚才定义的数据类型
接着我们把两个数据赋值给类这个变量的两个属性
这里的赋值顺序是按属性定义的先后顺序给属性赋值的
然后输出
至此,数据类型仍未讲完
还有table(表),array(数组),exception(异常),cursor(游标)等类型等没讲
异常和游标将在后面的文章提到
分享到:
相关推荐
Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发
最容易上手的PL/SQL学习教程-有经过测试的丰富案例,可以直接复制代码至SQL*PLUS中运行,知识点精确明了,是快速学习PL/SQL的绝好资料。
PL/SQL从入门到精通学习帮助手册,PL/SQL简介,PL/SQL操作,存储过程,触发器等
Oracle技术文档,Pl/SQl 的使用说明书
pl/sql数据库学习笔记,包含一些基础知识,和案例代码
·第十二章 PL/SQL应用程序性能调优 2008-04-08 · 第十一章 本地动态SQL 2008-04-08 ...· 第三章 PL/SQL数据类型 2008-04-08 · 第二章 PL/SQL基础 2008-04-08 · 第一章 PL/SQL一览
pl/sql笔记pl/sql笔记pl/sql笔记pl/sql笔记pl/sql笔记pl/sql笔记pl/sql笔记
Oracle PL/SQL实例精讲第五版--里面的使用表,课后答案,以及书中的案例,文件里有3个包。 很难受,本来只是想1积分的,居然这么高,没法修改。
pl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bitpl/sql-64bit
一个很好的学习 pl/sql的入门文章 作者总结的非常好 非常适合入门学者
pl/sql例题代码pl/sql例题代码pl/sql例题代码
---- 第二章 PL/SQL程序结构 ---- ---- 第三章 变量与数据类型 ---- ---- 第四章 PL/SQL控制语句 ---- ---- 第五章 PL/SQL游标 ---- ---- 第六章 HANDLE EXCEPTION ---- ---- 第七章 SUB PROGRAM ---- ---- 第八章...
pl-sql-dev-8-setup PL/SQL developer 的安装文件 另外还有它的注册机 和 简体中文包 都在我的资源中 我的刚解决 所以免费贴出来和大家分享
oracle 9i pl/sql程序设计笔记。
13oracle的PL/SQL编程-定义并使用变量 PPT 13oracle的PL/SQL编程-定义并使用变量 PPT
pl/sql developer11.0下载 pl/sql developer11.0下载 pl/sql developer11.0下载
PL/SQL 程序设计 本章主要重点: PL/SQL概述 PL/SQL块结构 PL/SQL流程 运算符和表达式 游标 异常处理 数据库存储过程和函数 包 触发器
Oracle PL/SQL学习官方教材,英文版,覆盖了PL/SQL的所有知识,适合入门者或作为参考资料.
PL/SQL Developer(pl/sql)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 <br>此版本包含注册文件和简体中文语言安装包 <br>Enhancements in PL/SQL Developer 7.1.5 ====================...