淺談oracle複合資料型別 (1)
--本文件可以直接複製執行。
/*
oracle複合資料型別
PL/SQL有兩種複合資料結構:記錄和集合。記錄由不同的域組成,集合由不同的元素組成。
*/
/*
一、記錄型別
類似C語言中的結構,有兩種定義方式:顯式定義和隱式定義。
*/
create table test
(
id varchar2(20),
mc varchar2(60)
);
insert into test values('111','11111');
insert into test values('222','22222');
insert into test values('333','33333');
insert into test values('444','44444');
insert into test values('555','55555');
insert into test values('666','66666');
commit;
/*
1.1、顯示定義記錄
*/
set serverout on
declare
type t_record is record
(
id test.id%type,
mc test.mc%type
);
var_record t_record;
counter number default 0;
begin
for row_test in (select id,mc from test) loop
counter := counter + 1;
var_record.id := row_test.id;
var_record.mc := row_test.mc;
dbms_output.put_line('var_record:'||var_record.id||'---'||var_record.mc);
dbms_output.put_line('row_test:'||row_test.id||'---'||row_test.mc);
dbms_output.put_line('================loop '||counter||' times.');
end loop;
exception when others then
dbms_output.put_line(sqlcode||sqlerrm);
end;
/
/*有一些PL/SQL指令在使用隱式定義記錄時沒有使用%ROWTYPE屬性,比如遊標FOR迴圈或觸發器中的:old和:new記錄。*/
/*
1.2、隱式定義記錄
*/
隱式定義記錄中,我們不用描述記錄的每一個域,在宣告記錄變數時使用%ROWTYPE命令定義與資料庫表,檢視,遊標有相同結構的記錄。
declare
t_record1 test%rowtype;
cursor cur_test(v_id in varchar2) is
select id,mc from test
where id <= v_id;
t_record2 cur_test%rowtype;
begin
for row_test in cur_test('333') loop
t_record1.id := row_test.id;
t_record1.mc := row_test.mc;
t_record2.id := row_test.id;
t_record2.mc := row_test.id;
dbms_output.put_line('t_record1:'||t_record1.id||'---'||t_record1.mc);
dbms_output.put_line('t_record2:'||t_record2.id||'---'||t_record2.mc);
dbms_output.put_line('row_test:'||row_test.id||'---'||row_test.mc);
dbms_output.put_line('================loop '||cur_test%rowcount||' times.');
end loop;
exception when others then
dbms_output.put_line(sqlcode||sqlerrm);
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017064/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- Oracle基本資料型別儲存格式淺析——RAW型別Oracle資料型別
- Day 7.5 資料型別總結 + 複製 淺複製 深複製資料型別
- [Redis] 淺談Redis內的幾種資料型別Redis資料型別
- Oracle 資料型別Oracle資料型別
- 第 10 節:複合型別 1:陣列型別陣列
- 複合型別(json)型別JSON
- 【轉】ORACLE資料型別Oracle資料型別
- Oracle anydata資料型別Oracle資料型別
- ORACLE NUMBER資料型別Oracle資料型別
- Oracle資料型別對應Java型別Oracle資料型別Java
- 談談Java基礎資料型別Java資料型別
- 組合資料型別資料型別
- 淺談PHP弱型別安全PHP型別
- Oracle OCP(19):資料型別Oracle資料型別
- Oracle的number資料型別Oracle資料型別
- oracle數值型別漫談Oracle型別
- 談談JavaScript中常見的資料型別JavaScript資料型別
- 【Python】組合資料型別Python資料型別
- 淺談JavaScript的型別轉換JavaScript型別
- 淺談大資料、資料分析、資料探勘的區別!大資料
- Oracle字串資料型別簡述Oracle字串資料型別
- 全網最適合入門的物件導向程式設計教程:42 Python常用複合資料型別-collections容器資料型別物件程式設計Python資料型別
- 什麼是組合資料型別?Python組合資料型別分為幾類?資料型別Python
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- 淺談TypeScript型別、介面、裝飾器TypeScript型別
- 資料型別綜合應用資料型別
- python組合資料型別(集合)Python資料型別
- hive複雜資料型別的用法Hive資料型別
- 02. 複合型別(Composite Types)型別
- Oracle和sqlserver資料型別對應OracleSQLServer資料型別
- 資料庫:淺談DML、DDL、DCL的區別資料庫
- TS資料型別:型別別名/聯合型別/字面量型別/型別推論等綱要資料型別
- 淺談 JavaScript 中 Array 型別的方法使用JavaScript型別
- Go 複合型別之字典型別介紹Go型別
- 細談Redis五大資料型別Redis大資料資料型別
- 第 10 節:複合型別 2: 切片型別
- 淺談Oracle Result CacheOracle
- 資料型別與函式索引-Oracle篇資料型別函式索引Oracle