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...