好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle PL / SQL变量值

常量

要声明常量,请在类型说明符之前放入关键字CONSTANT。

常量必须在其声明中初始化。

每次输入块或子程序时,都会初始化常量。

以下代码显示如何定义REAL类型的常量,并为常量指定一个不可更改的值5。

 DECLARE 
  n_real      CONSTANT REAL    := 5.00; 
  n_value  CONSTANT INTEGER := 3; 
  n_boolean      CONSTANT BOOLEAN := FALSE; 
BEGIN 
  NULL; 
END; 
/  

 

DEFAULT

我们可以使用关键字 DEFAULT 而不是赋值运算符来初始化变量。

可以使用DEFAULT在用户定义的记录中初始化子程序参数,光标参数和字段。

对具有典型值的变量使用DEFAULT。对没有典型值的变量使用赋值运算符。

 DECLARE 
  n_char       CHAR DEFAULT 'O';         -- Same as n_char CHAR := 'O'; 
  n_length     INTEGER DEFAULT 40;  -- Typical value 
  n_count      INTEGER := 0;        -- No typical value 
 
BEGIN 
  NULL; 
END; 
/  

 

NOT NULL

声明可以施加NOT NULL约束。

NOT NULL防止您为该变量分配一个空值。

指定NOT NULL的声明必须指定默认值。

 DECLARE 
  i_id INTEGER(4) NOT NULL := 9999; 
BEGIN 
  NULL; 
END; 
/  

 

%TYPE

我们可以使用%TYPE来声明表列类型的变量

 CREATE TABLE EMP ( 
  empid  NUMBER(6) NOT NULL PRIMARY KEY, 
  deptid NUMBER(6) CONSTRAINT c_EMP_deptid CHECK (deptid BETWEEN 100 AND 200), 
  deptname VARCHAR2(30) DEFAULT 'Sales' 
); -- from  w w w  . ja  va  2 s  . com
  
DECLARE 
  v_empid    EMP.empid%TYPE; 
  v_deptid   EMP.deptid%TYPE; 
  v_deptname EMP.deptname%TYPE; 
BEGIN 
  v_empid := NULL; 
  v_deptid := 50;  
  DBMS_OUTPUT.PUT_LINE ('v_deptname: ' || v_deptname);
END; 
/  

 

%ROWTYPE属性

%ROWTYPE属性声明表示表中某一行的记录。

要引用记录中的字段,请使用 record_name.field_name 。

记录字段不继承相应列的约束或默认值。

如果引用的项表更改,您的声明将自动更新。

 CREATE TABLE EMP ( 
  empid  NUMBER(6) NOT NULL PRIMARY KEY, 
  deptid NUMBER(6) CONSTRAINT c_EMP_deptid CHECK (deptid BETWEEN 100 AND 200), 
  deptname VARCHAR2(30) DEFAULT 'Sales' 
); -- ww w.  j a  va2 s.  co m
  
DECLARE 
  emprec  EMP%ROWTYPE; 
BEGIN 
  emprec.empid := NULL; 
  emprec.deptid := 50;  
  DBMS_OUTPUT.PUT_LINE ('emprec.deptname: ' || emprec.deptname); 
END; 
/  

以下代码显示了如何声明一个表示表列子集的记录。

 DECLARE 
      CURSOR c1 IS SELECT id, name FROM departments; 
      dept_rec c1%ROWTYPE;  -- includes subset of columns in table 
BEGIN 
  NULL; 
END; 
/  

以下代码显示如何从联接声明一个表示行的记录。

 DECLARE 
      CURSOR c2 IS 
        SELECT employee_id, email, employees.manager_id, location_id 
          FROM employees, departments; 
      join_rec  c2%ROWTYPE;  -- includes columns from two tables 
 
BEGIN 
      NULL; 
END; 
/  

查看更多关于Oracle PL / SQL变量值的详细内容...

  阅读:22次

上一篇

下一篇

第1节:Oracle PL / SQL CASE 语句    第2节:Oracle PL / SQL CHAR VARCHAR2    第3节:Oracle PL / SQL INTERVAL数据类型    第4节:Oracle PL / SQL loop循环    第5节:Oracle PL / SQL for loop循环    第6节:Oracle PL / SQL goto 语句    第7节:Oracle PL / SQL update更新数据    第8节:Oracle PL / SQL包    第9节:Oracle PL / SQL 存储过程    第10节:Oracle PL / SQL 函数    第11节:Oracle PL / SQL变量    第12节:Oracle PL / SQL变量范围    第13节:Oracle PL / SQL TIMESTAMP数据类型    第14节:Oracle PL / SQL 聚合函数大全    第15节:Oracle PL/SQL Views 视图    第16节:Oracle PL / SQL 表 table    第17节:Oracle PL/SQL Delete删除数据    第18节:Oracle PL/SQL Select 查询    第19节:Oracle PL/SQL 教程    第20节:Oracle PL / SQL注释    第21节:Oracle PL / SQL触发器Triggers    第22节:Oracle PL / SQL变量值    第23节:Oracle PL / SQL块结构    第24节:Oracle PL / SQL关联数组    第25节:Oracle PL / SQL文字    第26节:Oracle PL / SQL参数    第27节:Oracle PL / SQL运算符    第28节:Oracle PL/SQL NUMBER    第29节:Oracle PL/SQL if 语句    第30节:Oracle PL/SQL while循环    第31节:Oracle PL / SQL约束    第32节:Oracle PL / SQL 插入insert    第33节:Oracle PL / SQL数据类型    第34节:PL / SQL 分析函数大全