用record型別和table型別儲存查詢語句返回的多條記錄 的例子
DECLARE
--定義一個record type
TYPE TEST_EMP IS RECORD
(
C1 gobo_sign.org_id%TYPE,
C2 gobo_sign.proc_name%TYPE
);
--定義table type
type t_type is table of TEST_EMP;
v_type t_type;
BEGIN
--將select result寫入 定義的table
SELECT org_id,proc_name BULK COLLECT INTO v_type
FROM gobo_sign
WHERE rownum <= 6;
for v_index in v_type.first .. v_type.last loop
dbms_output.put_line(v_type(v_index).C1 || ' ' || v_type(v_index).C2);
end loop;
END;
結果:
0 OMR004
0 OMR110
1 BOMR002
1 BOMR003
1 OMR004
1 OMR110
另:
一個關於tape的procedure ,LZ可以看看
CREATE OR REPLACE PROCEDURE Zxt_type_Study Is
/*
type 的使用
*/
Testrow1 Test%ROWTYPE;
TYPE Aa IS TABLE OF Test%Rowtype;
Testrow Aa := Aa();
TYPE Bb IS TABLE OF Test.ac%Type;
Cc Bb;
Testrow2 Test%ROWTYPE;
t Test.Ac%TYPE;
BEGIN
Testrow2.Ac := 'a3';
Testrow2.Breanch := 'zxtss';
Testrow2.Amt := 5000;
--取update的結果
UPDATE Test SET ROW = Testrow2 WHERE Ac = Testrow2.Ac RETURNING Ac, Breanch, Amt INTO Testrow1;
--給type付值
FOR i IN (SELECT * FROM Test) LOOP
Testrow.EXTEND;
Testrow(Testrow.LAST) := i;
Testrow2 :=i;
Dbms_Output.Put_Line('ac1=' || Testrow2.Ac || ';breanch1=' || Testrow2.Breanch || ';amt1=' || Testrow2.Amt);
END LOOP;
Dbms_Output.Put_Line('ac=' || Testrow1.Ac || ';breanch=' || Testrow1.Breanch || ';amt=' || Testrow1.Amt);
--給type付值1
SELECT Test.Ac BULK COLLECT INTO Cc FROM Test;
--forall的使用
FORALL j IN Cc.FIRST .. Cc.LAST
UPDATE Test SET Test.Amt = 1000 WHERE Test.Ac = Cc(j);
--取type中的一個值
FOR y IN Cc.FIRST .. Cc.LAST LOOP
Dbms_Output.Put_Line('cc(y)' || Cc(y));
END LOOP;
Dbms_Output.Put_Line('t=' || t);
--列印執行前邊的sql結果集的條數
Dbms_Output.Put_Line('sql=' || SQL%ROWCOUNT);
END Zxt_type_Study;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92289/viewspace-896996/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- table和record 型別用作引數型別
- 多型中的返回值型別多型型別
- TABLE型別的使用型別
- trait 和型別的方法同名的例子AI型別
- plsql記錄型別SQL型別
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- 原始碼 | 靜態工廠返回宣告的返回型別的子型別的例項原始碼型別
- 返回hash 型別的json型別JSON
- 泛型作為返回型別的寫法泛型型別
- 強型別語言變數和資料型別的理解變數資料型別
- pl/sql記錄型別SQL型別
- varchar or blob:欄位型別的儲存和溢位條件型別
- Java的基本型別和引用型別Java型別
- delete table 和 truncate table - 型別安全的心 - 部落格園delete型別
- mysql 用sql語句查詢一個表中的所有欄位型別、註釋MySql型別
- C#引用型別和值型別在堆、棧中的儲存C#型別
- std::packaged_task<返回型別(引數型別)>Package型別
- 實戰 Java 16 值型別 Record - 2. Record 的基本用法Java型別
- RecyclerView 多條目型別含有多個EditTextView型別
- 條件型別型別
- Lua 列印table 實現型別python的repr用於table型別Python
- c#中值型別和引用型別的區別C#型別
- SAP SEGW 事物碼裡的 ABAP 型別和 EDM 型別對映的一個具體例子型別
- sql語句修改欄位型別和增加欄位SQL型別
- 語言型別介紹及其Python的語言型別型別Python
- C++和java多型的區別C++Java多型
- 在HQL select查詢語句中自定義查詢結果返回的資料型別資料型別
- 概念區別 【編譯型語言與解釋型語言、動態型別語言與靜態型別語言、強型別語言與弱型別語言】編譯型別
- Kotlin的基本語法和型別Kotlin型別
- mysql語句:批量更新多條記錄的不同值[轉]MySql
- Python語法--可變型別和不可變型別Python型別
- 對於返回值型別不確定的函式如何限定返回值型別型別函式
- 值型別和引用型別型別
- 域名解析的記錄型別:A記錄、CNAME、MX記錄、NS記錄型別
- Java long型別和Long型別的那些事Java型別
- Python:多型、協議和鴨子型別Python多型協議型別
- 形式引數和返回值型別的對比型別