記錄型別是把邏輯相關的資料作為乙個單元儲存起來,它必須包括至少乙個標量型或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...