相关文章推荐
玩足球的树叶  ·  JAVAEE框架之Spring ...·  1 年前    · 
含蓄的斑马  ·  无法找到 .NET Core ...·  1 年前    · 
爱逃课的剪刀  ·  javascript Date ...·  1 年前    · 
  • 使用 %TYPE %ROWTYPE 可以根据已有类型定义变量。
  • PL/SQL 是一种 强类型的编程语言 ,所有的变量都必须在它声明之后才可以使用,变量都要求在 DECLARE 部分进行声明,而对于变量的名称也有如下的一些规定:

  • 变量名称的组成可以由字母、数字、 _ $ # 等组成;
  • 所有的变量名称要求以 字母开头 ,不能是 Oracle 中的 保留字(关键字)
  • 变量的长度最多只能为 30 个字符。
  • 声明变量的语法

  • 所有的变量都要求在 DECLARE 部分之中进行,在定义变量的时候也可以为其赋默认值,变量声明语法如下:
  • 变量名称 [CONSTANT] 类型 [NOT NULL] [:=value] ;
  • v_result VARCHAR2(30); ---- 这里没有赋值

    BEGIN

    DBMS_OUTPUT.put_line('v_result 的内容是 ['||v_result||']');

    v_result 的内容是 []

    DECLARE

    v_resultA NUMBER := 100 ;    -- 定义一个变量同时赋值

    v_resultB NUMBER ;        -- 定义一个变量没有设置内容

    BEGIN

    v_resultb := 30 ;            -- 没有区分大小写

    DBMS_OUTPUT.put_line(' 计算的结果是: ' || (v_resultA + v_resultB) ) ;

    END ;

    v_resultA NUMBER NOT NULL := 100 ; -- 定义一个非空变量 v_resultA ,同时赋值

    BEGIN

    DBMS_OUTPUT.put_line('v_resultA 变量内容: ' || (v_resultA) ) ;

    END ;

    v_resultA CONSTANT NUMBER NOT NULL := 100 ; -- 定义一个常量同时赋值

    BEGIN

    DBMS_OUTPUT.put_line('v_resultA 常量内容: ' || (v_resultA) ) ;

    END ;

    DECLARE

    eno emp.empno%TYPE ;     -- empno 类型相同

    ename emp.ename%TYPE ; -- ename 类型相同

    BEGIN

    DBMS_OUTPUT.put_line(' 请输入雇员编号: ') ;

    eno := &empno ;                -- 由键盘输入雇员编号

    SELECT ename INTO ename FROM emp WHERE empno=eno ;

    DBMS_OUTPUT.put_line(' 编号为: ' || eno || ' 雇员的名字为: '|| ename) ;

    END ;

    编号为: 7900 雇员的名字为: JAMES

    deptRow dept%ROWTYPE ;        -- 装载一行 dept 记录

    BEGIN

    SELECT * INTO deptRow FROM dept WHERE deptno=10 ;

    DBMS_OUTPUT.put_line(' 部门编号: '||deptRow.deptno || ' ,名称: ' || deptRow.dname || ' ,位置: ' || deptRow.loc) ;

    END ;

    部门编号: 10 ,名称: ACCOUNTING ,位置: NEW YORK

    v_url := ' http://www.cnblogs.com/thescentedpath/ ' ;

    DBMS_OUTPUT.put_line(v_info) ;

    DBMS_OUTPUT.put_line(v_url) ;

    END ;

    BEGIN

    v_url := ' http://www.cnblogs.com/thescentedpath/ ' ;

    DBMS_OUTPUT.put_line(v_info || ' ,网址: ' || v_url) ;

    END ;

    DECLARE

    v_url        VARCHAR2(50) := ' http://www.cnblogs.com/thescentedpath/ ' ;

    v_num1        NUMBER := 80 ;

    v_num2        NUMBER := 30 ;

    BEGIN

    IF v_num1 > v_num2 THEN

    DBMS_OUTPUT.put_line(' 1 个数字比第 2 个数字大。 ') ;

    END IF ;

    IF v_ur l LIKE '%wendy%' THEN

    DBMS_OUTPUT.put_line(' 网址之中包含 wendy 单词。 ') ;

    END IF ;

    END ;

    v_flag1        BOOLEAN := TRUE ;

    v_flag2        BOOLEAN := FALSE ;

    v_flag3        BOOLEAN ;

    BEGIN

    IF v_flag1 AND ( NOT v_flag2 ) THEN

    DBMS_OUTPUT.put_line('v_flag1 AND ( NOT v_flag2 ) = TRUE') ;

    END IF ;

    IF v_flag1 OR v_flag3 THEN

    DBMS_OUTPUT.put_line('v_flag1 OR v_flag3 = TRUE') ;

    END IF ;

    IF v_flag1 AND v_flag3 IS NULL THEN

    DBMS_OUTPUT.put_line('v_flag1 AND v_flag3 的结果为 NULL ') ;

    END IF ;

    END ;