ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PL/SQL数据类型、控制语句

2021-09-23 09:04:04  阅读:249  来源: 互联网

标签:lable statements -- 数据类型 loop SQL NULL PL


SQL数据类型

在SQL中适用的数据类型及子类型、数据类型比较规则、数据转换、格式模型等,在PL/SQL中均适用

但以下除外:

最大值不一样,例如 VARCHAR2,在SQL中最大是4000字节,而在PL/SQL中是32767字节
BINARY_FLOAT和 BINARY_DOUBLE类型中多了一些常量定义,如
BINARY_FLOAT_MAX_NORMAL
SIMPLE_FLOAT和 SIMPLE_ DOUBLET两个子类型

布尔数据类型

  定义

  <变量名>  BOOLEAN;

  值域

  TRUE,FALSE,NULL

  常用运算

  TRUE OR FALSE --> TRUE

  FALSE AND NULL --> FALSE

PLS_INTEGER

与 BINARY_INTEGERS完全一样
范围是-2,147,483,648到2,147,483,647,用32位二进制表示
可为NULL
比 NUMBER或其子类,具有占用存储空间少,运算速度快的优势( PLS_INTEGER采用硬件计
算而不是 NUMBER所使用的库计算,所以快很多)
不具有 NOT NULL约束

SIMPLE_INTEGER

PLS_INTEGER的子类

具有NOT NULL约束

当确定PLS_INTEGER定义的变量值肯定不会包含NULL时,可改用SIMPLE_INTEGER来定义

自定义的PL/SQL子类型

SUBTYPE MYHEIGHT IS NUMBER(3,2);

SUBTYPE SUBJECT_SCORE IS PLS_INTEGER RANGE 0..100;

 

控制语句--条件

if  then

if  then  else

if  then  elsif

if  condition_1  then
    statements_1
elsif  condition_2  then
    statements_2
[elsif  condition_3  then
    statements_3
]...
[
    else_statements        
]
end if;

简单case

case selector
when selector_value_1 then statements_1
when selector_value_2 then statements_2
...
when selector_value_n then statements_n
[else
else_statements]
end case;

查找式case

case 
when condition_1 then statements_1
when condition_2 then statements_2
...
when scondition_n then statements_n
[else
else_statements]
end case;

控制语句--循环

基本的LOOP

[lable]  loop
statements
end loop [lable];
--特点:无限循环
--exit:退出当前循环
--continue: 中断当前的循环并进入下一次循环
--对于多层循环,如果指定了lable,二者均是退出/中断lable对应的循环(从最内层调到最外层循环)

for loop

[lable] for index [reverse] lower_bound..upper_bound loop
statements
end loop[lable];

while loop

[lable] while condition loop
statements
end loop [lable];

goto

--可以跳转到指定的lable

NULL

NUL语句是不做任何事的语句
为G0TO语句提供个“落脚点"
可在条件语句中通过増加ELSE+NULL的方式,来对条件选择进行说明,使得代码可读性更佳
在构建代码框架初期作为个占位符,用于保证整个结构能编译通过

标签:lable,statements,--,数据类型,loop,SQL,NULL,PL
来源: https://www.cnblogs.com/lag1/p/15322650.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有