4.PL_SQL——变量声明以及初始化,字符串分隔符

一、变量的作用

PL/SQL既然是编程语言,就必然会用到变量。和其他程序语言类似,PL/SQL中的变量主要有以下作用:1. 用来临时的存放数据;2.用来操作数据;3. 重复使用数据。

例如上一节中举的例子,就用到了变量:

DECLARE

v_fnameVARCHAR2(20);

-- 声明变量

BEGIN

SELECT first_name

INTO v_fname

-- 将SELECT语句查询到的数据存放到变量v_fname

FROM employees

WHERE employee_id = 100;

DBMS_OUTPUT.PUT_LINE(‘The result is ‘ || v_fname);

-- 使用存放在变量v_fname中的数据

END;

二、变量的命名规则

PL/SQL中命名规则主要有:

1. 必须以字母开头;

2. 可以包含字母和数字;

3. 可以包含特殊字符,如$, _和#。注意, _可以使用,但$和#最好尽量不用,因为在其他编程语言中很少允许使用$和#,为了养成良好的编程习惯,最好不要使用这两个符号;

4. 变量的长度最好不要超过30个字符;

5. 不能使用关键字和保留字。

三、变量的使用方法

PL/SQL中变量的用法如下:

1. 变量需要在DECLARE部分定义;变量可以在DECLARE部分初始化,也可以不初始化,视程序需要而定。

2. 在执行部分,即BEGIN部分赋新值和使用;

3. 可以作为参数用在子程序中;

4. 也可以用来存放程序的输出结果。

下面来结合之前用到的例子,演示变量的用法:

SQL> edit

DECLARE
      v_fname VARCHAR2(20);
--声明了变量v_fname,但没有初始化
   BEGIN
      SELECT first_name
      INTO v_fname
-- 变量v_fnam 用来存放SELECT语句的查询结果
      FROM employees
      WHERE employee_id = 100;
      DBMS_OUTPUT.PUT_LINE(‘Theresult is ‘ || v_fname);
-- 变量v_fnam作为参数被传递到方法中
   END;
   /
The result is Steven
PL/SQL procedure successfullycompleted.

四、声明和初始化变量

变量需要声明,初始化则可以在声明时进行,也可以不在此时进行,但是如果声明时定义为not null的情况下,就必须初始化才能使用。

变量声明的格式为:

Identifier [CONSTANT]datatype [NOT NULL] [ := | DEFAULT expression ]

这里中括号中的内容都是可选项,具体含义如下:

1. CONSTANT表示常量,一旦定义为常量,则不能在为该变量赋其他的值了;

2. 如果定义了[NOT NULL],则该变量必须赋值;

3. PL/SQL中赋值使用的是 :=,初始化时也可以使用DEFAULT来定义默认值。

来看几个具体的例子:

        DECLARE
            v_hiredate  DATA;
             --此处只声明没有初始化
            v_deptno    NUMBER(2) NOT NULL := 10;
             -- 声明时定义为 NOT NULL,所以必须为其初始化,赋值为10,也可以写成
             -- v_deptno   NUMBER(2) NOT NULL DEFUALT 10;
            v_location   VARCHAR2(13) := ‘atlanta’
             -- 声明的的同时也初始化
            c_comm     CONSTANT  NUMBER  := 1400;
             --声明时定义为常量,意味着以后不能再为其赋其他的值了

下面来看两个例子:

例1.

SQL> DECLARE

      v_myName VARCHAR(20);
                -- 只声明,没有初始化
   BEGIN
      DBMS_OUTPUT.PUT_LINE(‘My name is: ‘ || v_myName);
                -- 使用的是未初始化的变量v_myName
      v_myName := ‘John‘;
                -- 为变量v_myName 赋值
      DBMS_OUTPUT.PUT_LINE(‘My name is: ‘ || v_myName);
                -- 使用的是赋值后的变量
  END;

SQL> /

Myname is:
                -- 由于没有初始化,故没有结果
Myname is: John
                -- 赋值后使用变量,能显示该变量的值
PL/SQLprocedure successfully completed.

例2.

SQL>

   DECLARE
      v_myName VARCHAR2(20) := ‘John‘;
                -- 声明变量的同时为其初始化
   BEGIN
      DBMS_OUTPUT.PUT_LINE(‘My name is: ‘ || v_myname);
                -- 注意,这里故意将变量写成小写,以验证PL/SQL中不区分大小写
   END;
   /
Myname is: John
PL/SQLprocedure successfully completed.

五、字符串分隔符

在打印输出结果时经常会用到引号,但是单引号’有时候也作为分割符使用,如I’m这种情况,为了避免混淆,PL/SQL中使用了q来进行分隔符的引用:q表示quotes,加上单引号‘,后面接任意成对的符号,都可以起到引用的单引号作用。看下面这个例子:

SQL> edit

   DECLARE
      v_event VARCHAR2(15);
   BEGIN
      v_event := q‘!Father‘s day!‘;
       -- 这里使用q’,然后加上成对的!,就可以避免把分隔符’当成单引号
      DBMS_OUTPUT.PUT_LINE(‘3rd Sunday in June is :‘ || v_event);
      v_event := q‘[Mother‘s day]‘;
       -- 成对的特殊符号都可以,这里使用的是一对中括号[]
      DBMS_OUTPUT.PUT_LINE(‘2nd Sunday in May is :‘ || v_event);
   END;

SQL> /

3rdSunday in June is :Father‘s day
2ndSunday in May is :Mother‘s day
PL/SQLprocedure successfully completed.

4.PL_SQL——变量声明以及初始化,字符串分隔符

时间: 2024-08-06 16:32:17

4.PL_SQL——变量声明以及初始化,字符串分隔符的相关文章

关于Javascript循环体变量声明与初始化的效率问题

针对循环体变量声明与初始化的效率问题,将执行的简单测试代码如下: function test(n) { console.time('Internally initialized'); for (var i = 0; i < n; i++) { let a = i; } console.timeEnd('Internally initialized'); console.time('Externally initialized'); let a = 0; for (var i = 0; i <

变量——声明,初始化,匿名变量,作用域

1.变量声明 1)标准格式: var 变量名 变量类型 当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等.所有的内存在 Go 中都是经过初始化的. 2)批量格式 var (变量名1 变量类型1变量名2 变量类型2变量名3 变量类型3) 3)简短格式 变量名 := 表达式 简短格式的限制:定义变量,同时显式初始化.不能提供数据类型.只能用在函数内部. 注意: 在单个短变量声明和赋值中,由

成员变量声明时初始化和构造方法中初始化的区别

声明时为成员变量赋值,那么你一创建对象,这个赋值就进行,而且先于构造器执行. 而且你每次创建这个类的对象,都是同一个值. 构造方法初始化可以单独为每一个对象赋不同的值 执行顺序:执行父类静态代码 执行子类静态代码初始化父类成员变量(我们常说的赋值语句)初始化父类构造函数初始化子类成员变量初始化子类构造函数

5.PL_SQL——变量的种类以及如何声明变量(autoprint, %TYPE)

一.变量的种类 PL/SQL中变量主要有以下几类: Scalar:标量,单一变量,如Integer,Character等等,最为常见,使用最广: Composite:复合变量,里面还有多种子结构,如数组等,使用也比较广泛: Reference:引用类型,类似指针,指向某个类型 Large object(LOB):CLOB(CharacterLarge Object,存储文档),BLOB(Binary Large Object,存储二进制文件,如图片.声音等) Non-PL/SQL variabl

C++11类内static成员变量声明与定义

众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享. 在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中. 因此,就引出了static成员变量的声明与定义问题: 1. 如果一个类内成员变量是static的,且需要将之设定为常量(const),那么这个变量声明与初始化均可写在头文件内. 举个例子: 1 // Scanner.hpp 2 class Scanner { 3 public: 4 const sta

GoLang学习之变量定义和初始化

变量命名原则 go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的. 变量声明和初始化方式 使用var关键字 var a int = 9 var str string ="jisuanji" 注意,Go语言变量类型放在变量名之后! 如果上面的代码段没有初始化值,那么变量就会被初始化为对应类型的零值. var a int 这个代码片段声明了一个int类型变量a,并把a初始化为int零值,即0. 忽略类型 这种声明和初始化变

变量声明置顶规则、函数声明及函数表达式和函数的arguments属性初始化

一.变量声明和变量赋值: if (!("a" in window)) { var a = 1; } alert(a);//a为? 你可能认为alert出来的结果是1,然后实际结果是"undefined".要了解为什么,我们需要知道JavaScript里的3个概念: 1.所有的全局变量都是window的属性,语句 var a = 1;等价于window.a = 1; 可以用如下方式来检测全局变量是否声明: "变量名称" in window 2.声明

C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量巧用,属性实际运用,唯一性验证

QQ:1187362408 欢迎技术交流和学习 关于系统产品升级报告管理,业务需求: TODO: 1,升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息) 2,运用的技术:依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量与可null变量巧用,属性实际运用,唯一性验证,url传递中文编码和解码问题 讲解篇:1,服务端aspx,2,服务端后台返回数据(这里采用服务器端程序:aspx.cs)

C#中对于变量的声明和初始化

C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待. 1.在C#中,变量的声明格式为: 数据类型   变量名; 2.变量的赋值格式为: 变量名 = 数据; 3.一般情况下,都是先声明后赋值,或者在声明变量的同时就赋初值.然而有些时候在程序的开发设计中,往往忘了要赋初值(即进行初始化),这样就会导致在程序的设计中,会出现意想不到的错误. 解释:当我们在声