plsql基础(我们似曾相识系列2)

1,赋值

在plsql中的赋值符号是::=

 

2,特殊一点的符号

1   (..)两点在plsql中是范围运算符,在loop中会用到。

2    字符连接符号是用:||

 

3,字符和数字运算注意点

空值加数字仍是空值: NULL + < 数字 > = NULL
空值加(连接)字符,结果为字符: NULL || < 字符串 > = < 字符串 >

 

4,类型的转换

char转换成number:v_total := TO_NUMBER( ‘ 100.0 ’ ) + sal;

number转换成char:v_comm := TO_CHAR( ‘ 123.45 ’ ) || ’ ’ ;

字符转换成日期:v_date := TO_DATE ('2001.07.03','yyyy.mm.dd') ;

日期转换成字符:v_to_day := TO_CHAR( SYSDATE , 'yyyy.mm.dd hh24:mi:ss') ;

 

5,IF语句

注意点有一个就是:else if 要写成:elsif。

 

6,CASE语句

CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END;

例:

复制代码
DECLARE
V_grade char(1) := UPPER( ‘ &p_grade ’ );
V_appraisal VARCHAR2(20);
BEGIN
V_appraisal :=
CASE v_grade
WHEN ‘ A ’ THEN ‘ Excellent ’
WHEN ‘ B ’ THEN ‘ Very Good ’
WHEN ‘ C ’ THEN ‘ Good ’
ELSE ‘ No such grade ’
END;
DBMS_OUTPUT.PUT_LINE( ‘ Grade: ‘ ||v_grade|| ’ Appraisal: ‘ || v_appraisal);
END;
复制代码

 

7,循环

第一种:

 LOOP
要执行的语句 ;
E XIT WHEN < 条件语句 > /* 条件满足,退出循环语句 */
END LOOP;

复制代码
DECLARE
int NUMBER(2) :=0;
BEGIN
LOOP
int := int + 1;
DBMS_OUTPUT.PUT_LINE('int 的当前值为 :'||i nt );
EXIT WHEN int =10;
END LOOP;
END;
复制代码

 

第二种:

WHILE < 布尔表达式 > LOOP

复制代码
DECLARE
x NUMBER;
BEGIN
x:= 1;
WHILE x<10 LOOP
DBMS_OUTPUT.PUT_LINE(' X 的当前值为 :'|| x );
x:= x+1;
END LOOP;
END ;
复制代码

 

第三种:

FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句 ;
END LOOP;

 

可以使用 EXIT 退出循环。

BEGIN
FOR i nt in 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('i nt 的当前值为 : '||i nt );
END LOOP;
END;

 

8,GOTO
<<label>> /* 标号是用 << >> 括起来的标识符 */

复制代码

DECLARE
V_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('V_counter 的当前值为 :'||V_counter);
V_counter := v_counter + 1;
IF v_counter > 10 THEN
GOTO l_ENDofLOOP;
END IF;
END LOOP;
<<l_ENDofLOOP>>
DBMS_OUTPUT.PUT_LINE('V_counter 的当前值为 :'||V_counter);
END ;
复制代码

 

9,关于 NULL
在 PL/SQL 程序中,可以用 null 语句来说明 “ 不用做任何事情 ” 的意思,相当于一个占 位
符,可以使某些语句变得有意义,提高程序的可读性。如:

复制代码
DECLARE
. . .
BEGIN

IF v_num IS NULL THEN
GOTO print1;
END IF;

<<print1>>
NULL; -- 不需要处理任何数据
END;
复制代码

 



 

 低头做事,抬头做人。

 

posted on   每当变幻时  阅读(1110)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2012年2月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示