声明变量后,可以使用赋值语句为其分配表达式的值。
PL 使用 进行赋值操作,语法如下:
其中,variable 为 PL 变量,expression 为 PL 表达式。
空值的赋值运算包括以下两种形式:
空值加数字仍是空值
NULL + < 数字> = NULL
空值加(连接)字符,结果为字符
NULL || <字符串> = < 字符串>
示例如下:
obclient> DECLARE
-> p1 INTEGER := 3;
-> p2 INTEGER;
-> BEGIN
-> p2 := p1 + NULL;
-> DBMS_OUTPUT.PUT_LINE(NULL||'p1 + NULL = '||p2);
-> /
Query OK, 0 rows affected (0.02 sec)
p1 + NULL =
示例如下:
数据库可以通过 SELECT INTO 语句直接赋值给变量,每次执行 SELECT INTO 语句就赋值一次,要求被赋值的变量类型与 SELECT 中的列一一对应。
示例如下:
obclient> DECLARE
-> emp_id employees.employee_id%TYPE :=105;
-> emp_name employees.first_name%TYPE;
-> wages employees.salary%TYPE;
-> SELECT first_name, NVL(salary,0) INTO emp_name, wages
-> FROM employees WHERE employee_id = emp_id;
-> END;
-> /
Query OK, 0 rows affected (0.03 sec)
David----4800
注意
数据库赋值不能赋给布尔型变量。
在赋值时可以使用函数对数据类型进行转换。
CHAR 转 NUMBER
NUMBER 转 CHAR
使用 TO_CHAR 函数可以实现数字到字符的转换,示例如下:
字符转日期
使用 TO_DATE 函数实现字符到日期的转换,示例如下:
日期转字符
使用 TO_CHAR 函数实现日期到字符的转换,示例如下:
v_to_day := TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') ;
完整的函数列表信息请参见《**OceanBase 数据库 SQL 参考手册**》的 转换函数 。