oracle 編寫記錄

2021-08-31 05:40:44 字數 2074 閱讀 3892

記錄型別是把邏輯相關的資料作為乙個單元儲存起來,它必須包括至少乙個標量型或record 資料型別的成員,稱作pl/sql record 的域(field),其作用是存放互不相同但邏輯相關的資訊。

定義記錄型別語法如下:

type record_type is record(

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

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

. . .   . . .

fieldn typen  [not null]  [:= expn ] ) ;

4

declare

type test_rec is record(

code varchar2(10),

name varchar2(30) not null :=』a book』);

v_book test_rec;

begin

v_book.code :=』123』;

v_book.name :=』c++ programming』;

dbms_output.put_line(v_book.code||v_book.name);

end;

可以用select語句對記錄變數進行賦值,只要保證記錄欄位與查詢結果列表中的字段相配即可。

使用%type

定義乙個變數,其資料型別與已經定義的某個資料變數的型別相同,或者與資料庫表的某個列的資料型別相同,這時可以使用%type。

使用%type特性的優點在於:

l所引用的資料庫列的資料型別可以不必知道;

l所引用的資料庫列的資料型別可以實時改變。

5

declare

-- 用%type 型別定義與表相配的字段

type t_record is record(

t_no emp.empno%type,

t_name emp.ename%type,

t_sal emp.sal%type );

-- 宣告接收資料的變數

v_emp t_record;

begin

select empno, ename, sal into v_emp from emp where empno=7788;

dbms_output.put_line

(to_char(v_emp.t_no)||v_emp.t_name||to_char(v_emp.t_sal));

end;

6

declare

v_empno emp.empno%type :=&no;

type r_record is record (

v_name   emp.ename%type,

v_sal     emp.sal%type,

v_date    emp.hiredate%type);

rec r_record;

begin

select ename, sal, hiredate into rec from emp where empno=v_empno;

dbms_output.put_line(rec.v_name||'---'||rec.v_sal||'--'||rec.v_date);

end;

mkefile編寫記錄

檢視的文件 基礎知識 arm linux工具 gcc是一套交叉編譯工具鏈,支援分布編譯,反彙編,可用於,輸出預處理後的c 源程式,生成二進位制目標檔案,生成靜態庫,生成可執行程式,轉換檔案格式,gcc 編譯的前端程式,用於間原始檔變異成目標檔案,as彙編器 將組合語言轉換為elf ld聯結器 鏈結定...

Dockerfile編寫記錄

dockerfile 近期幫朋友製作了docker映象以方便使用,在製作的過程中經歷了相容問題,映象size臃腫,映象內多服務問題,下面開始碼例項。from euleros workdir opt add opencv 4.1.0.tar.gz opt run rpm rpmbuilddb yum ...

Makefile編寫記錄

近期學習 linux 需要使用 makefile,網上蒐羅了很多這方面的資料,所裡在這裡做乙個整理。1 靜態模式 看乙個例子 objects foo.o bar.o all objects objects o c cc c cflags o 上面的例子中,指明了我們的目標從 object 中獲取,o...