PLSQL基礎(一)記錄(相當於結構體)

2021-05-27 22:38:40 字數 1836 閱讀 6252

plsql在工作中斷斷續續會用到,每次用的時候,都需要查資料,熟悉一下語法格式.現在特記錄下來,免得以後使用過程中,總是查資料.

塊的分類

塊可以分為以下四類

1)無名塊:動態構造並只能執行一次。

2)命名塊:前面加了標號的無名塊

3)子程式:包括儲存在資料庫中的儲存過程,函式和包.這些塊一旦被定義後,便可隨時呼叫。

4)觸發器:它是儲存在資料庫中的塊,這些塊一旦被構造後,就可以多次執行。當觸發它的事件發生時呼叫該觸發器。觸發事件是指對錶中資料的操作,如插入,刪除和修改.

復合型別

在pl/sql中有兩種復合型別

1)記錄  2)表

記錄  (相當於結構體)

type recode_type is record

field1  type1 [not null] [:=expr1],

field2  type2 [not null] [:=expr2],

field3   type3 [not null] [:=exprn]

其中record_type表示記錄型別的名字,field表示記錄裡域的名字,type表示記錄裡域的型別,expr表示為域賦的初始值.

當定義了乙個記錄型別後,就可以宣告記錄型別的變數了.

declare

type  t_authrec is record

(

authorcode            varchar2(10),

name                     auths.name%type,

birthdate                auths.birthdate%yepe,

entrydatetime        auths.entry_date_time%type

);

宣告t_articlerec 記錄型別的變數

v_article1  t_authrec ;

v_article2   t_authrec ;

當定義了乙個記錄型別變數後,可以按照下面的語句引用記錄中的域:

recode_name.fiele_name

不僅可以為記錄的域賦值,具有相同型別的兩個記錄也可以相互賦值。

v_article1 := v_article2

也可用select語句來為記錄賦值,這種方法是從資料庫表中檢索出資料,然後將他們存入記錄中,要注意,記錄中的域的型別一定要和select列表中域的型別一致。

select  author_code,name,birthdate,entry_date_time

into   v_author

from   auths

where  author_code = 'a00009';

在plsql中經常會遇到這樣的宣告---宣告乙個與資料庫表中各型別相同的記錄。為了簡化這種記錄的宣告,plsql提供了%rowtype操作符,類似於%type.

%rowtype返回乙個記錄型別,這個記錄型別中域型別與定義該記錄的表中各列的型別相同。

下面定義了乙個與表article相同的記錄:

v_article   article%rowtype;

使用%rowtype宣告的記錄包括資料庫表中列的not null約束,但包括varchar2列和char列的長度,number列的精度和標度,當表定義發生改變時,%rowtype宣告的記錄也傳送相應的改變.

一 記憶 基礎常識

飲食注意 規律飲食 綠色,五穀為主 健腦食物 核桃 大棗 瓜子 黑芝麻 花生 雞蛋 牛奶 肝 腦 蔬菜 水果 運動與睡眠 適量運動 11 1點膽經當值,並且陰氣最重,應注意陰陽調和,11點前睡覺,早晨5 6點起床為宜 良好心態 意志的強大不可小覷 科學腦鍛鍊 右腦與左腦並用 記憶本質 影象是開發大腦...

記錄 Linux木馬一記

2.中毒現象 中毒機器大量向外傳送資料報,導致機房網路出現嚴重丟包,所有被感染的目錄和檔案 etc init.d selinux etc init.d dbsecurityspt etc rc 1 5 d s99selinux etc rc 1 5 d s97dbsecurityspt usr bi...

日誌統一記錄方法

日誌目錄位置 專案名 單日誌檔案大小限制 defined log file size or define log file size 2097152 2mb 設定錯誤和異常處理 error reporting 0 logreport auto class logreport else self ha...