PLSQL入門與精通(第4章 變數之 TYPE)

2021-10-19 17:29:56 字數 2067 閱讀 6056

上一章,介紹了變數的定義,這一次繼續深入介紹變數。

《變數定義域》

變數名 變數型別;

除此之外,我們介紹一下變數定義中經常使用的東西。

以下是變數定義的新的一種方法:

《變數定義域》

變數名 表名.列名%type;

該方法是變數定義是:用指定表(或檢視)中指定列的型別來定義變數和型別」。

也就是說,不是直接指定資料型別,而是間接指定型別的。

例如,將與emp表的ename列相同資料型別的變數以v_ename的名稱宣告時,定義如下:

《變數定義域》

v_ename emp.ename%type;

用這樣的方法定義變數的話,第三者在看到其記述的時候也能很好地理解變數的意思。

另外,即使表的列的資料型別發生了變化,也不需要修改源**。

如果可能的話,建議使用此方法進行變數定義。

變數定義後,該變數沒有指定任何值。可以說是空變數。像這樣沒有值的叫做null。

根據程式語言的不同,定義後的變數值也有「不定」的情況,但是pl/sql語言明確規定為「null」。

但是,也可以在數值儲存的狀態下宣告變數。

例如,如果以tax_rate的名稱宣告儲存有值5的number型變數,則如下所示。

《變數定義域》

tax_rate number := 5;

這裡,除了tax_rate這個變數一開始就含有數值這點之外,它和普通的變數完全一樣。

當然,執行域也可以在這個tax_rate變數中儲存(代入)不同的值。

如果在執行部想禁止向tax_rate代入值時,使用constant關鍵字如下定義:

《變數定義域》

tax_rate constant number := 5;

使用constant關鍵字定變數時,執行部無法將值代入該變數。也就是說,在上述例子中,

tax_rate變數的值始終是5。像這樣禁止代入值的變數被稱為「常量」。

下面介紹簡單常量的使用例子。

例如,tax_rate常數表示消費稅率5%。

而且,在執行部使用消費稅率5%進行各種計算的時候,比起直接在執行部的源**中寫「5」這個數字,

還是用tax_rate常量來寫比較好。為什麼呢,因為將來消費稅率變更為3%的時候,變數定義域的tax_rate常量的值只是變成「3」,執行部的源**不需要修改。這是常量的典型使用例子。

那麼,如果是變數的話,可以在執行部代入數值,最後說明代入方法。

代入是指給這個變數賦值。

變數中代入值的方法有兩種:

使用「:=」和「into」的方法

使用「into」的方法是將資料庫中詢問的值代入變數,作為特殊語句的一部分使用。

關於這個雖然是重要的技術,但是說明會變多,所以下次再說明。

那麼,使用「:=」的方法是非常簡單的。如下。

《執行預》

變數名稱:=值;

由此,將:=的右側(稱為右邊緣)的值代入左側(稱為左邊緣)的變數。

希望大家注意的是「:=」,而不是「=」。在pl/sql中,「=」是比較的意思,不是代入。代入是:=。

「比較」和「代入」根據程式語言的不同會有微妙的差異,請注意。

另外,右邊不是數值本身也沒關係。公式也可以,變數也可以,函式也可以。表示簡單的例子。

例如,變數a、變數b均為number型,有以下記述:

《執行域》

1 a := 10;

2 a := a + 1;

3 b := a;

4 a := a + 1;

※左邊標註的數字是便於說明的行號。

根據程式語言的不同,變數中儲存的不是數值本身,而是數值指標(位置資訊)。

在pl/sql語言中,變數只是儲存的具體的值,而不是變數指標。

第1行只在變數a中代入10。

第2行將變數a的值加1後的值(即11)代入變數a。變數a的值為11。也就是說計算同一變數的值,然後返回到同一變數。

第3行將變數a的值(此時為11)代入變數b。由此,變數b的值與變數a相同為11。也就是說,將變數a的值複製到變數b。

第4行中變數a加1,變數a的值為12,但對變數b的值沒有影響,變數b保持為11。

這一章就到此。下一章針對檢索select進行說明。

PLSQL入門到精通(第6章 異常)

前一次我們針對select into做了簡單的說明,本次針對他的異常處理進行解釋。我們用文字的方式進行編輯,儲存到 test.sql檔案中。可以通過sql plusl來執行text.sql。執行方法不在敘述 test.sql檔案的內容 set serveroutput on set verify o...

PLSQL入門與精通(第33章 包的本質)

我們一直在列舉說明pl sql的包的用途。但是包的本質是什麼的?個人理解,pl sql包的本質就是 全區域性 換句話來講全域性使用的東西,需要在包來定義。一般來說,在無名塊 或者過程和函式的本地定義部中定義的內容只能在本pl sql塊中使用。從這個意義上來說,這是乙個本地 區域性 的定義部。所謂本地...

《C 從入門到精通》第4章 變數與常量 學習筆記

一 變數的命名 1.必須以字母或下劃線開頭,並且僅由字母,數字和下劃線組成 2.變數名不含空格 標點符號 運算符號 3.變數名不能與c 中的關鍵字 運算子 函式名重複 4.之前的命名規則 注意 c 允許用 作為字首組成變數名 用於避免衝突 二 變數的宣告以及賦值 1.語法格式 訪問修飾符 變數修飾符...