orcle自定義類型type/create or replace type


一、type / create or repalce type 區別聯系

相同:

可用關鍵字create type 或者直接用type定義自定義類型,

區別:

create type 變量 as table of 類型

--

create type 變量 as object(

字段1 類型1,

字段2 類型2

);

--------------------------

type 變量 is table of 類型

--

type 變量 is record(

字段1 類型1,

字段2 類型2

);

區別是 用 create 后面用 as , 若直接用 type 后面用 is

create 是創 object , 而 type 是創 record .

另 type用在語句塊中,而create 是的獨立的.

 

一般定義object的語法:

 

create type 自定義表類型A as table of 自定義Object類型A

create type 自定義Object類型A as object(

字段1 類型1,

字段2 類型2

);

 

type 自定義表類型B is table of 類型

type 自定義Object類型B is record(

字段1 類型1,

字段2 類型2

);

自定義類型一般分為兩中,object類型和table類型.object類似於一個recored,可以表示一個表的一行數據,

 

object的字段就相當與表的字段.

 

自定義的table類型需要用的已經定義好的object類型.

數組怎么定義呢:

type  typename is table of typedefine index by binary_integer;//若去掉index by binary_integer,則需要每次自動擴展了

 
CREATE OR REPLACE TYPE typename AS VARRAY(100) OF typedefine;

二:type record用法概述

type 自定義Object類型B is record(

字段1 類型1,

字段2 類型2

);

2.1:什么是記錄(Record)?
由單行多列的標量構成的復合結構。可以看做是一種用戶自定義數據類型。組成類似於多維數組。
將一個或多個標量封裝成一個對象進行操作。是一種臨時復合對象類型。

記錄可以直接賦值。RECORD1 :=RECORD2;
記錄不可以整體比較.
記錄不可以整體判斷為空。

2.2:%ROWTYPE和記錄(Record)?
請區別%ROWTYPE和記錄(Record)類型。%ROWTYPE可以說是Record的升級簡化版。
區別在與前者結構為表結構,后者為自定義結構。二者在使用上沒有很大區別。前者方便,后者靈活。在實際中根據情況來具體決定使用。
Record + PL/SQL表可以進行數據的多行多列存儲。

 

三:工作實例

1、

CREATE OR REPLACE TYPE "TYPE_COLUMN"
 IS OBJECT
(
  STR_COLUMN       VARCHAR2(30)
)

2、

CREATE OR REPLACE TYPE "TYPE_TABLE_SPLIT_COLUMNS"
 AS table of TYPE_COLUMN
/
3、

CREATE OR REPLACE TYPE "TYPE_TB_RPT_SECU_DAILY_EXT"
 AS table of TYPE_RPT_SECU_DAILY_EXT
/



/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM