- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle定义PL SQL变量
前言:
使用变量可以保存计算机需要处理的数据,为了给该变量分配适当的内存空间,还需要指定数据类型,有的数据类型还需要指定长度,如字符串。
有些类型可以用于建表(如char),有些则不能(如boolean,rowtype)。
同样是字符串,建表时的限制为4000,在脚本中则为3万多。
简单语法:变量名 数据类型;
完整语法:变量名 [constant] 变量类型 [not null] [default 值 | :=值]
其中“[ ]”表示可以不写,“|”表示任选其一。
下面给出变量定义及解释,数据类型先用建表时所用的数据类型:
v1 char:
说明:没有给出长度,所以v1只能保存一个字符。超过了则会出错:数字或值错误 : 字符串缓冲区太小。
v2 varchar2(10);
说明:v2最多只能保存10个字符。如果不写长度,会出错:字符串长度限制在范围(1...32767)
v3 number;
说明:v3保存的数字范围非常大,几乎可以认为是没有限制的。
v4 number(5);
说明:v4最多能够保存5位整数。如果有小数,Oracle会自动四舍五入。如果整数部分超过5位,则会报错:数字或值错误 : 数值精度太高。
v5 number(5,2);
说明:v5最多能够保存3位整数,2位小数。如果小数位不止2位,则Oracle会自动四舍五入。整数位超过3位会报错,同上。
v6 date;
说明:可以直接保存sysdate的值;如果是指定日期,则要用to_date来转化。否则报错:文字与格式字符串不匹配。
定义了变量,变量的默认值为空,此时进行计算,结果一定为NULL。所以变量必须初始化。
初始化有三种方式:
v7 constant number := 100;
说明:定义v7为常量,定义时就必须给定值。然后在程序中就不能再对v7进行赋值了,否则会报错:表达式 V7 不能用作赋值目标。
v8 number default 10;
说明:定义v8时就给定默认值10。注意,number类型变量的默认值不是0,而是NULL。
v9 number not null := 1000.50;
说明:定义v9变量不能为空,此时必须给出一个不为NULL的值。在运行时发现v9为NULL,则报错:说明为 NOT NULL 的变量必须有初始化赋值。
预测各打印结果,如果代码有错误请先改正:
declare
v1 char;
v2 varchar2(10);
v3 number;
v4 number(5);
v5 number(5,2);
v6 date;
v7 number default 10;
begin
v1:=ab;
v2:=abcd;
v4:=9998.99;
v5:=1000.5555555;
v6:=to_date(2002-10-2,yyyy-mm-dd);
dbms_output.put_line(v1);
dbms_output.put_line(v2);
dbms_output.put_line(v3+100);
dbms_output.put_line(v4);
dbms_output.put_line(v5);
dbms_output.put_line(v6);
dbms_output.put_line(v7+100);
end;
只能在脚本中使用的变量类型:
上面的数据类型,同时在建表时也能使用。而下面的数据类型只能在PL/SQL脚本中使用。
即:boolean,type,rowtype,record,替代变量、table类型。
其中:
·一个变量只能保存一个值,叫做“标量变量”。如:char、type。
·一个变量只能保存多个值,叫做“复合变量”。如:rowtype、record,table。
1、布尔类型 boolean
boolean类型主要表达真或假。可以为boolean类型变量赋值true或false。
主要用于PL/SQL脚本的流程控制。
示例:
declare
v1 boolean;
begin
v1:=12;
dbms_output.put_line(v1);
end;
问题:打印的结果是什么,是true、false、1、0?
回答:
都不对。运行时得到错误信息:调用 PUT_LINE 时参数个数或类型错误。
这是因为在脚本中不能直接打印boolean类型的值,所以只能在脚本中使用if语句来判断。
修改示例:
declare
v1 boolean;
begin
v1:=12;
if(v1)then
dbms_output.put_line(真);
else
dbms_output.put_line(假);
end if;
end
您可能关注的文档
最近下载
- 2025年郑州铁路职业技术学院单招职业适应性测试题库精选答案.docx VIP
- 华南农业大学作物育种总论试题及答案.doc VIP
- 深入贯彻中央八项规定精神学习教育党课(ppt).pptx VIP
- 整形外科学(中级324)基础知识卫生专业技术资格考试试题及解答参考(2025年).pdf VIP
- 四川省成都市青羊区2024年四年级数学第二学期期末调研试题含解析.pdf VIP
- 2024版《供电营业规则》学习考试题库资料500题(含答案).pdf
- 设立再生资源回收利用公司商业计划书.pptx VIP
- 九年级数学《锐角三角函数》复习教学设计.pdf VIP
- 寒旱区多年生豆禾混播放牧型草地建植技术规程.pdf
- 2025年哈尔滨医科大学附属第六医院(利民中心 医院)公开招聘工作人员180人笔试备考题库及答案解析.docx
文档评论(0)