PL/SQL之变量赋值

来源:互联网 发布:linux拼音输入法设置 编辑:程序博客网 时间:2024/04/29 16:32

在PL/SQL中,变量赋值需要特别注意,因为我们一般的程序语言赋值时一个=号就搞定,可是PL/SQL确是另类。

PL/SQL变量赋值语法:

variable := expression;

variable是PL/SQL中的变量,expression为PL/SQL的表达式。关于赋值,以下几点需要重点知道:

1.字符及数字运算的特点

空值加上数字仍是空值:NULL+<数字> = NULL

DECLARE  --声明部分可以不声明BEGIN  DBMS_OUTPUT.PUT_LINE(NULL+2);--NULL+2 = NULLEND;
输出结果为null

空值连接字符串等于字符串:NULL||字符串=字符串

DECLARE  --声明部分可以不声明BEGIN  DBMS_OUTPUT.PUT_LINE(NULL||'我只是个字符串');--NULL||字符串 = 字符串END;
输出结果:

我只是个字符串

2.BOOLEAN赋值

BOOLEAN值只有TRUE,FALSE,NULL.

DECLARE  btest BOOLEAN := true;--可以变换赋值,输出不同情况的值BEGIN  CASE WHEN btest is null THEN      DBMS_OUTPUT.PUT_LINE('null');    WHEN btest = true THEN      DBMS_OUTPUT.PUT_LINE('true');    WHEN btest = false THEN      DBMS_OUTPUT.PUT_LINE('fase');    ELSE       DBMS_OUTPUT.PUT_LINE('别闹');    END CASE;--case when在pl/sql中使用时,注意end case,而不是sql中的endEND;
输出结果:

true

3.数据库赋值

数据库赋值是通过 SELECT 语句来完成的,每次执行 SELECT 语句就赋值一次,变量名与列名一致。

第一步,建表,插入数据:

create table mytest(        id number(3),        name varchar2(20),        age number(3)    );    insert into mytest values(1,'one',18);    insert into mytest values(2,'two',20);    insert into mytest values(3,'three',24);    commit;  
第二步,使用select给数据库赋值,不能赋值给boolean值

DECLARE  v_name mytest.name%TYPE;  v_age mytest.age%TYPE;BEGIN  --给数据库赋值  SELECT name,age INTO v_name,v_age FROM mytest WHERE id = 1;  --输出变量值  DBMS_OUTPUT.PUT_LINE(v_name||' '||v_age);END;
输出结果:

one 18

4.可转换的类型赋值

CHAR  转换为 NUMBER :

    使用 TO_NUMBER 函数来完成字符到数字的转换,如:v_total := TO_NUMBER('10') + 90;

   

--to_number()将char转换为numberBEGIN  DBMS_OUTPUT.PUT_LINE(to_number('100')+100);END;
结果:

200

NUMBER  转换为 CHAR:

   使用 TO_CHAR 函数可以实现数字到字符的转换,如:v_amount := TO_CHAR('1000') || '元' ;

--to_char()将number,date转换为charBEGIN  DBMS_OUTPUT.PUT_LINE(to_char(100000)||'元啊');  DBMS_OUTPUT.PUT_LINE(to_char(sysdate(),'yyyy-mm-dd hh:mi:ss'));END;

字符转换为日期:

   使用 TO_DATE 函数可以实现 字符到日期的转换,如:v_date := TO_DATE('2016.02.26','yyyy.mm.dd');

--to_date()字符串转换成日期BEGIN  DBMS_OUTPUT.PUT_LINE(to_date('2016.02.26','yyyy-mm-dd'));END;

0 0
原创粉丝点击