Oracle入門(十四.6)之使用標量資料型別
一、宣告字元變數
字元資料型別包括CHAR,VARCHAR2和LONG。
DECLARE
v_emp_job VARCHAR2(9);
v_order_no VARCHAR2(6);
v_product_id VARCHAR2(10);
v_rpt_body_part LONG;
…
二、宣告數字變數
數字資料型別包括NUMBER,PLS_INTEGER,BINARY_INTEGER和BINARY_FLOAT。 在語法中,CONSTANT約束變數,使其值不能改變。 常量必須初始化。 INTEGER是NUMBER(38,0)的別名。
DECLARE v_dept_total_sal NUMBER(9,2) := 0; v_count_loop INTEGER := 0; c_tax_rate CONSTANT NUMBER(3,2) := 8.25; …
(1)宣告日期變數
日期資料型別包括DATE,TIMESTAMP和TIMESTAMP WITH TIMEZONE。
DECLARE
v_orderdate DATE := SYSDATE + 7;
v_natl_holiday DATE;
v_web_sign_on_date TIMESTAMP;
…
(2)宣告布林變數
布林值是儲存用於邏輯計算的三個可能值之一的資料型別:TRUE,FALSE或NULL。
DECLARE
v_valid BOOLEAN NOT NULL := TRUE;
v_is_found BOOLEAN := FALSE;
v_underage BOOLEAN;
…
宣告布林變數細節
宣告布林變數時:
•只能將值TRUE,FALSE和NULL分配給布林變數。•條件表示式使用邏輯運算子AND和OR,而運算子不檢查變數值。
•變數總是產生TRUE,FALSE或NULL。
•您可以使用算術,字元和日期表示式來返回布林值。
三、宣告和初始化PL / SQL變數的準則
只有值TRUE,FALSE和NULL可以分配給布林變數。•使用有意義的名稱並遵循命名約定。
•為了更好的可讀性,程式碼維護和更簡單的評論,每行宣告一個識別符號。
•當變數必須儲存一個值時,使用NOT NULL約束。
•避免使用列名作為識別符號。
DECLARE country_id CHAR(2); BEGIN SELECT country_id INTO country_id FROM countries WHERE country_name = 'Canada'; END;
四、使用%TYPE屬性固定變數
您可以使用%TYPE屬性根據另一個先前宣告的變數或資料庫列宣告變數,而不是對變數的資料型別和精度進行硬編碼。當儲存在變數中的值是從資料庫中的表派生時,最常使用%TYPE屬性。
當你使用%TYPE屬性宣告一個變數時,你應該用資料庫表和列名作為字首。
(1)%TYPE屬性
看看這個資料庫表和使用它的PL / SQL塊。 這個PL / SQL塊將正確的薪水儲存在v_emp_salary變數中。 但是如果表格列稍後改變呢?CREATE TABLE myemps (
emp_name VARCHAR2(6),
emp_salary NUMBER(6,2));
DECLARE
v_emp_salary NUMBER(6,2);
BEGIN
SELECT emp_salary INTO v_emp_salary
FROM myemps WHERE emp_name = 'Smith';
END;
(2)%TYPE屬性詳細資訊
%TYPE屬性:•用於自動給變數賦予與以下相同的資料型別和大小:
- 資料庫列定義
- 另一個宣告的變數
•帶有以下任一項的字首:
- 資料庫表和列
- 其他宣告變數的名稱
(3)用%TYPE屬性宣告變數
句法:
identifier table.column_name%TYPE;
例子:
...
v_emp_lname employees.last_name%TYPE;
v_balance NUMBER(7,2);
v_min_balance v_balance%TYPE := 1000;
...
(4)%TYPE屬性的優點
%TYPE屬性的優點是:
•您可以避免由資料型別不匹配或錯誤精度造成的錯誤。
•如果列定義更改,則不需要更改變數宣告。 也就是說,如果您已經為特定的表格聲明瞭一些變數而不使用%TYPE屬性,那麼如果宣告變數的列被更改,那麼PL / SQL塊可以返回錯誤。
•當您使用%TYPE屬性時,PL / SQL將在編譯塊時確定變數的資料型別和大小。 這確保了這樣的變數總是與用於填充它的列相容。
(5)%TYPE屬性
再看看資料庫表和PL / SQL塊。現在,即使列資料型別稍後發生更改,PL / SQL塊仍會繼續正常工作。CREATE TABLE myemps (
emp_name VARCHAR2(6),
emp_salary NUMBER(6,2));
DECLARE
v_emp_salary myemps.emp_salary%TYPE;
BEGIN
SELECT emp_salary INTO v_emp_salary
FROM myemps WHERE emp_name = 'Smith';
END;
相關推薦
Oracle入門(十四.6)之使用標量資料型別
一、宣告字元變數字元資料型別包括CHAR,VARCHAR2和LONG。DECLARE v_emp_job VARCHAR2(9); v_order_no VARCHAR2(6); v_product_id VARCHAR2(10); v_rpt_body_part L
Oracle入門(十四.22)之建立DDL和資料庫事件觸發器
一、什麼是DDL和資料庫事件觸發器?DDL語句觸發DDL觸發器:CREATE,ALTER或DROP。資料庫事件觸發器由資料庫中的非SQL事件觸發,例如:•使用者連線到資料庫或與資料庫斷開連線。•DBA啟動或關閉資料庫。•使用者會話中引發了特定的異常。(1)在DDL語句中建立觸
Oracle入門(十四.13)之帶引數的遊標
一、帶引數的遊標 引數是一個變數,其名稱用於遊標宣告中。 當遊標開啟時,引數值被傳遞給Oracle伺服器,Oracle伺服器使用它來決定要將哪些行檢索到游標的活動集中。 這意味著您可以在塊中多次開啟和關閉顯式游標,或者在同一個塊的不同執行中開啟和關閉顯式游標,每次
python入門(十四):面向對象(屬性、方法、繼承)
mage eat div 實例變量 統一 object 地址 面向對象 實例方法 任何東西1)屬性(特征:通常可以用數據來描述)(類變量和實例變量)2)可以做一些動作(方法)類來管理對象的數據。屬性:類變量和實例變量(私有變量)方法: 1)實例方法 2)類方法
OpenCV3入門(十四)影象特效—擠壓、哈哈鏡、扭曲
一、影象擠壓特效 1、原理 影象壓效果本質的影象座標的非線性變換,將影象向內擠壓,擠壓的過程產生壓縮變形,從而形成的效果。 擠壓效果的實現是通過極座標的形式,設影象中心為O(x,y),某點距離中心O的距離為半徑R,非線性方式改變半徑R但不改變點的方向,就構成了影象擠壓。也可以自定義加壓中心點,計算半徑方式相同
(轉載)通向架構師的道路(第四天)之Tomcat性能調優-讓小貓飛奔
adt val 響應 useragent lec threads 版本升級 基本 oracl 轉載自:https://blog.csdn.net/lifetragedy/article/details/7708724 參考文章:tomcat以及常用web容器線程池的實現原理
最全面詳細講解Oracle入門(新手必看)
本章內容: Ø Oracle介紹 Ø 安裝步驟 Ø 基本使用 Ø 使用者管理 一、Oracle資料庫簡介 Oracle資料庫是Oracle(甲骨文)公司的核心產品,適合於大型專案的開發;銀行、電信、電商、金融等各領域都大量使用Oracle資料庫。 Oracle資料庫是一
通向架構師的道路(第四天)之Tomcat效能調優-讓小貓飛奔
從“第三天”的效能測試一節中,我們得知了決定效能測試的幾個重要指標,它們是:ü 吞吐量ü Responsetimeü Cpuloadü MemoryUsage我們也在第三天的學習中對Apache做過了一定的優化,使其最優化上述4大核心指標的讀數,那麼我們的Ap
通向架構師的道路(第四天)之Tomcat效能調優
轉自:http://blog.csdn.net/lifetragedy/article/details/7708724 從“第三天”的效能測試一節中,我們得知了決定效能測試的幾個重要指標,它們是: ü 吞吐量 ü Responsetime ü Cpulo
2.6 使用for迴圈遍歷檔案 2.7 使用while迴圈遍歷檔案 2.8 統計系統剩餘的記憶體 2.9 資料型別轉換計算(計算mac地址) 3.0 資料型別轉換(列表與字典相互轉換)
2.6 使用for迴圈遍歷檔案 open r:以只讀方式開啟 w: 以寫方式開啟 a: 以追加模式開啟 r+: 以讀寫模式開啟 w+: 以讀寫模式開啟(參見w) a+: 以讀寫模式開啟(參見a) rb: 以二進位制模式開啟 read 我們先寫一個檔案,叫1.txt 內容如下 111 22
python 入門之 – 深度copy 與 資料型別記憶體地址(十四)
在深入瞭解 python 的 copy() 方法之前先回顧以前以前學過的變數賦值,如: a = 123123 b = a print(b) 毫無疑問,在變數中我可以直接以等於號來複制一個值出來,打印出來的是和 a 相等的值,如:123123,但是在陣列中為什麼用這種方法不行,最後找
Java從入門到放棄(十四)集合框架之TreeMap原始碼
我們經常需要對一些集合按照指定的規則進行排序,比如學生按照學號排序,或者按照成績排序,集合裡面有專門排序的集合,如TreeMap。TreeMap裡面是使用的紅黑樹結構。 構造方法 private final Comparator<? su
Python爬蟲從入門到放棄(十四)之 Scrapy框架中選擇器的用法
esp 技術分享 val arr con des image 使用 自己 原文地址https://www.cnblogs.com/zhaof/p/7189860.html Scrapy提取數據有自己的一套機制,被稱作選擇器(selectors),通過特定的Xpath或者CS
Python 爬蟲從入門到進階之路(十四)
之前的文章我們已經可以根據 re 模組,Xpath 模組和 BeautifulSoup4 模組來爬取網站上我們想要的資料並且儲存在本地,但是我們並沒有對儲存資料的格式有要求,本章我們就來看資料的儲存格式 JSON 及 Python 中的 json 模組。 JSON(JavaScript Object Not
Java入門系列之集合HashMap原始碼分析(十四)
前言 我們知道在Java 8中對於HashMap引入了紅黑樹從而提高操作效能,由於在上一節我們已經通過圖解方式分析了紅黑樹原理,所以在接下來我們將更多精力投入到解析原理而不是演算法本身,HashMap在Java中是使用比較頻繁的鍵值對資料型別,所以我們非常有必要詳細去分析背後的具體實現原理,無論是C#還是J
Storm入門(十一)Twitter Storm源代碼分析之CoordinatedBolt
業務 什麽 協議 ack 第一個 ng- rec 功能 這一 作者: xumingming | 可以轉載, 但必須以超鏈接形式標明文章原始出處和作者信息及版權聲明網址: http://xumingming.sinaapp.com/811/twitter-storm-code
全棧JavaScript之路(十四)HTML5 中與class屬性相關的擴充
mov html5 表示 方法 popu dom add data- token 1. getElementByClassName() :支持getElementsByClassName()方法的瀏覽器有IE 9+、Firefox 3+、Safari
MySQL(十四)之數據備份與還原
pic 還原 mysql .com ace sql .cn uid 數據備份 http://pic.cnhubei.com/space.php?uid=4614&do=album&id=1719909http://pic.cnhubei.com/space.
【ASP.NET Core快速入門】(十四)MVC開發:UI、 EF + Identity實現
dfa models cti ted lec inpu word pri numeric 前言 之前我們進行了MVC的web頁面的Cookie-based認證實現,接下來的開發我們要基於之前的MvcCookieAuthSample項目做修改。 MvcCookieAuth
C之邏輯運算符(十四)
C語言 && || ! 我們在 C 語言中經常會遇到邏輯運算符。|| 是從左向右開始計算的,當遇到為真的條件時停止計算,整個表達式為真;所有條件為假時表達式才為假。 && 是從左向右開始計算,當遇到為假的條件時停止計算,整個表達式為假;所有條件為真時表達式才為真