plsql programming 11 記錄型別

2021-09-06 13:52:39 字數 2613 閱讀 7448

記錄型別非常類似資料庫表中的行. 記錄作為乙個整體本身並沒有值, 不過每個單獨成員或字段都有值, 記錄提供了一種把這些值當做一組進行操作的方法.

例如:

1:  

-- create a table

2:  

-- chap11_01.sql

3:  

create

table books (

4:      book_id    integer;
5:      isbn    varchar2(13),
6:      title    varchar2(200),
7:      summary    varchar2(2000),
8:      author    varchar2(200),
9:      date_published    date,
10:      page_count    number
11:  );
12:
13:  

-- 方法1

14:  

-- chap11_02.sql

15:  

declare

16:      my_book    books%rowtype;
17:  

begin

18:  

select *

19:  

into my_book

20:  

from books

21:  

where title = 'oracle pl/sql programming, 5th edition';

22:
23:  

if my_book.author like

'%feuerstein%'

24:  

then

25:          dbms_output.put_line('our newest isbn is' || my_book.isbn);
26:  

endif;

27:  

exception

28:  

when no_data_found then

29:          dbms_output.put_line('there is no data what you want it.');
30:  

end;

31:  /
32:
33:  

-- 方法2

34:  

-- chap11_03.sql

35:  

declare

36:      type author_title_rt is record (
37:          author books.author%type,
38:          title books.title%type);
39:      l_book_info author_title_rt;
40:  

begin

41:  

select author, title into l_book_info

42:  

from books where isbn = '119'

43:      dbms_output.put_line('author is : ' || l_book_info.author);
44:      dbms_output.put_line('title : ' || l_book_info.title);
45:  

exception

46:  

when no_data_found then

47:          dbms_output.putline('there is no data what you want');
48:  

end;

49:  /

宣告記錄 3 種方式

1. 基於記錄型別

declare one_book books%rowtype;

2. 基於游標記錄型別

declare

cursor my_books_cur is

select * from books where author like 『%feuerstein%』;

one_sf_book my_books_cur%rowtype;

3. 使用者自定義的記錄型別

例如上例中的方法 2 .

觸發器偽記錄

如果是在資料庫觸發器操作某個表, 資料庫為我們提供了兩種結構, old 和 new, 這兩個結構是用 %rowtype宣告的基於表的記錄型別有相同的格式, 表中的每一列都有乙個對應的字段:

old: 這條偽記錄代表的是當前事務開始之前表中記錄的值.

new: 這條偽記錄代表的是當前事務結束之後, 表中記錄的新值.

學習記錄1 1 string類

標頭檔案所有操作都需要呼叫此標頭檔案 過載操作符 索引 第乙個是0 合併字串 注意左右操作物件不能都是字串字面值 類似的還有 等和 c 字串支援常見的比較操作符 另乙個功能強大的比較函式是成員函式compare 他支援多引數處理,支援用索引值和長度定位子串來進行比較。他返回乙個整數來表示比較結果,返...

Vivado除錯記錄1 1

軟體版本 vivado 2017.4 作業系統 windows 10 error usf xsim 62 elaborate step failed with error s please check the tcl console output or.解決方法 檢視log控制台輸出結果為 erro...

OpenCV學習記錄11

一 學習內容 1 開操作 2 閉操作 3 形態學梯度操作 4 頂帽 5 黑帽 二 記錄 include include include using namespace cv mat src,dst1,dst2,dst3,dst4,dst5 dst6 int element default size ...