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

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的方式,来对条件选择进行说明,使得代码可读性更佳
在构建代码框架初期作为个占位符,用于保证整个结构能编译通过

上一篇:C# 9.0 Top-level statements


下一篇:日志输出The last packet successfully received问题以及c3p0解决方案,max_statements