溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-07-28 16:13:23 來源:網(wǎng)絡(luò) 閱讀:1038 作者:wuyeyoulanjian 欄目:關(guān)系型數(shù)據(jù)庫

一、變量的作用

         PL/SQL既然是編程語言,就必然會用到變量。和其他程序語言類似,PL/SQL中的變量主要有以下作用:1. 用來臨時的存放數(shù)據(jù);2.用來操作數(shù)據(jù);3. 重復使用數(shù)據(jù)。

 

例如上一節(jié)中舉的例子,就用到了變量:

   DECLARE

       v_fnameVARCHAR2(20);

                -- 聲明變量

   BEGIN

       SELECT first_name

      INTO v_fname

                -- SELECT語句查詢到的數(shù)據(jù)存放到變量v_fname

       FROM employees

       WHERE employee_id = 100;

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

                -- 使用存放在變量v_fname中的數(shù)據(jù)

   END;

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

二、變量的命名規(guī)則

          PL/SQL中命名規(guī)則主要有:

1. 必須以字母開頭;

                2. 可以包含字母和數(shù)字;

                3. 可以包含特殊字符,如$, _#。注意, _可以使用,但$#最好盡量不用,因為在其他編程語言中很少允許使用$#,為了養(yǎng)成良好的編程習慣,最好不要使用這兩個符號;

                4. 變量的長度最好不要超過30個字符;

                5. 不能使用關(guān)鍵字和保留字。

 

三、變量的使用方法

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

                1. 變量需要在DECLARE部分定義;變量可以在DECLARE部分初始化,也可以不初始化,視程序需要而定。

                2. 在執(zhí)行部分,即BEGIN部分賦新值和使用;

                3. 可以作為參數(shù)用在子程序中;

                4. 也可以用來存放程序的輸出結(jié)果。

 

下面來結(jié)合之前用到的例子,演示變量的用法:

SQL> edit

   

DECLARE
      v_fname VARCHAR2(20);
--聲明了變量v_fname,但沒有初始化
   BEGIN
      SELECT first_name
      INTO v_fname
-- 變量v_fnam 用來存放SELECT語句的查詢結(jié)果
      FROM employees
      WHERE employee_id = 100;
      DBMS_OUTPUT.PUT_LINE('Theresult is ' || v_fname);
-- 變量v_fnam作為參數(shù)被傳遞到方法中
   END;
   /
The result is Steven
PL/SQL procedure successfullycompleted.


四、聲明和初始化變量

                變量需要聲明,初始化則可以在聲明時進行,也可以不在此時進行,但是如果聲明時定義為not null的情況下,就必須初始化才能使用。

                變量聲明的格式為:

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

                這里中括號中的內(nèi)容都是可選項,具體含義如下:

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) := ‘a(chǎn)tlanta’
             -- 聲明的的同時也初始化
            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:
                -- 由于沒有初始化,故沒有結(jié)果
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中不區(qū)分大小寫
   END;
   /
Myname is: John
PL/SQLprocedure successfully completed.

 

五、字符串分隔符

         在打印輸出結(jié)果時經(jīng)常會用到引號,但是單引號有時候也作為分割符使用,如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.


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI