PLSQL基礎筆記

來源:互聯網
上載者:User
來杭州學習半年多了!今天終於講到以前關注的ORACLE PL/SQL預存程序! 整理一下上課敲的代碼:
先瞭解要用到的知識
1.variable(變數
文法:
var_name var_type[CONSTANT][NOT NULL][:= value];
DECLARE
  v_fname VARCHAR2(50);

為了保障變數與DB中TABLE 的Column資料類型的同一性,要用:
2.%TYPE
文法:
DECLARE
  v_fname s_emp.FIRST_NAME%TYPE;

但如果聲明太多的話!可累人了,還好有:
3.RECORD
文法:
TYPE record_name IS RECORD(
   field1 type1 [NOT NULL][:= expression1],
   ...
   fieldN typeN [NOT NULL][:= expressionN]
);
DECLARE
   TYPE s_TT IS RECORD(
       s_id s_emp.ID%TYPE,
       ....
       s_sal s_emp.SALARY%TYPE
   )
   --以上自訂了一個類型,下面用該類型作自訂變數的類型
   s_temp s_TT;

一個表如果有很多欄位,那要敲... :(, ORACLE想的也挺多:
4.ROWTYPE
返回一個基於DB中表定義的類型(一行的所有欄位)
DECLARE
  v_temp s_emp%ROWTYPE;

5.TABLE
與一個MAP<int,T>集合類似,用來儲存可用的資料
文法:
TYPE tabletype IS TABLE OF type INDEX BY BINARY_INTEGER;
DECLARE
    TYPE t_temp IS TABLE OF s_emp%ROWTYPE INDEX BY BINARY INTEGER;
    用t_temp作為類型來聲明一個變數
    v_table t_temp;
BEGIN
    SELECT *
    INTO v_table(-2)
    FROM s_emp
    WHERE ID=1;
END;

-2是ID=1的記錄儲存在v_table中的索引位置,該索引的值不能超過BINARY INTEGER的取值範圍:正負2147483647.索引可以是這個範圍內的任意值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.