声明变量后,可以使用赋值语句为其分配表达式的值。

PL 使用 进行赋值操作,语法如下:

其中,variable 为 PL 变量,expression 为 PL 表达式。

空值的赋值运算包括以下两种形式:

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

  • 空值加(连接)字符,结果为字符 NULL || <字符串> = < 字符串>

示例如下:

  1. obclient> DECLARE
  2. -> p1 INTEGER := 3;
  3. -> p2 INTEGER;
  4. -> BEGIN
  5. -> p2 := p1 + NULL;
  6. -> DBMS_OUTPUT.PUT_LINE(NULL||'p1 + NULL = '||p2);
  7. -> /
  8. Query OK, 0 rows affected (0.02 sec)
  9. p1 + NULL =

示例如下:

数据库可以通过 SELECT INTO 语句直接赋值给变量,每次执行 SELECT INTO 语句就赋值一次,要求被赋值的变量类型与 SELECT 中的列一一对应。

示例如下:

  1. obclient> DECLARE
  2. -> emp_id employees.employee_id%TYPE :=105;
  3. -> emp_name employees.first_name%TYPE;
  4. -> wages employees.salary%TYPE;
  5. -> SELECT first_name, NVL(salary,0) INTO emp_name, wages
  6. -> FROM employees WHERE employee_id = emp_id;
  7. -> END;
  8. -> /
  9. Query OK, 0 rows affected (0.03 sec)
  10. David----4800

注意

数据库赋值不能赋给布尔型变量。

在赋值时可以使用函数对数据类型进行转换。

  • CHAR 转 NUMBER

  • NUMBER 转 CHAR

    使用 TO_CHAR 函数可以实现数字到字符的转换,示例如下:

  • 字符转日期

    使用 TO_DATE 函数实现字符到日期的转换,示例如下:

  • 日期转字符

    使用 TO_CHAR 函数实现日期到字符的转换,示例如下:

  1. v_to_day := TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') ;

完整的函数列表信息请参见《**OceanBase 数据库 SQL 参考手册**》的 转换函数