欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)庫(kù)自定義類型type的用法詳解

 更新時(shí)間:2023年07月18日 10:19:18   作者:梁萌  
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)自定義類型type的用法詳解,Oracle?數(shù)據(jù)庫(kù)的概念和其它數(shù)據(jù)庫(kù)不一樣,這里的數(shù)據(jù)庫(kù)是一個(gè)操作系統(tǒng)只有一個(gè)庫(kù),可以看作是?Oracle?就只有一個(gè)大數(shù)據(jù)庫(kù),需要的朋友可以參考下

Oracle 基本概念

1. Oracle 數(shù)據(jù)庫(kù)

Oracle 數(shù)據(jù)庫(kù)是數(shù)據(jù)的物理存儲(chǔ)。這就包括(數(shù)據(jù)文件 ORA 或者 DBF、控制文件、聯(lián)機(jī)日志、參數(shù)文件)。其實(shí) Oracle 數(shù)據(jù)庫(kù)的概念和其它數(shù)據(jù)庫(kù)不一樣,這里的數(shù)據(jù)庫(kù)是一個(gè)操作系統(tǒng)只有一個(gè)庫(kù)。可以看作是 Oracle 就只有一個(gè)大數(shù)據(jù)庫(kù)

2. 實(shí)例

一個(gè)Oracle實(shí)例(Oracle Instance)有一系列的后臺(tái)進(jìn)程(Backguound Processes)和內(nèi)存結(jié)構(gòu)(Memory Structures)組成。一個(gè)數(shù)據(jù)庫(kù)可以有 n 個(gè)實(shí)例。

3. 數(shù)據(jù)文件(dbf)

數(shù)據(jù)文件是數(shù)據(jù)庫(kù)的物理存儲(chǔ)單位。數(shù)據(jù)庫(kù)的數(shù)據(jù)是存儲(chǔ)在表空間中的,真正是在某一個(gè)或者多個(gè)數(shù)據(jù)文件中。而一個(gè)表空間可以由一個(gè)或多個(gè)數(shù)據(jù)文件組成,一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間。一旦數(shù)據(jù)文件被加入到某個(gè)表空間后,就不能刪除這個(gè)文件,如果要?jiǎng)h除某個(gè)數(shù)據(jù)文件,只能刪除其所屬于的表空間才行。

4. 表空間

表空間是 Oracle 對(duì)物理數(shù)據(jù)庫(kù)上相關(guān)數(shù)據(jù)文件(ORA 或者 DBF 文件)的邏輯映射。一個(gè)數(shù)據(jù)庫(kù)在邏輯上被劃分成一到若干個(gè)表空間,每個(gè)表空間包含了在邏輯上相關(guān)聯(lián)的一組結(jié)構(gòu)。每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)表空間(稱之為 system 表空間)。
每個(gè)表空間由同一磁盤上的一個(gè)或多個(gè)文件組成,這些文件叫數(shù)據(jù)文件(datafile)。一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間。 

emp表數(shù)據(jù)如下所示

定義object類型

create or replace type typeof_userinfo_row as object(
  user_id varchar2(50),
  user_name varchar2(50)
)

創(chuàng)建函數(shù)并將此類型作為返回值類型

create or replace function FUN_TEST
return typeof_userinfo_row
is
  FunctionResult typeof_userinfo_row;
begin
  FunctionResult:=typeof_userinfo_row(null,null);
  --將單條數(shù)據(jù)值插入到自定義類型的變量中
  SELECT e.empno,e.ename  INTO FunctionResult.user_id,FunctionResult.user_name
  FROM emp e where e.empno = '7499';
  RETURN(FunctionResult);
end FUN_TEST;

調(diào)用該函數(shù),并打印執(zhí)行結(jié)果

declare res typeof_userinfo_row;
begin
  res := FUN_TEST();
  dbms_output.put_line(res.user_id || ' ' || res.user_name);
end;

執(zhí)行結(jié)果

定義table類型

create or replace type typeof_userinfo_table is table of typeof_userinfo_row

創(chuàng)建函數(shù)并將此類型作為返回值類型

create or replace function FUN_TEST1
return typeof_userinfo_table
is
  FunctionResult typeof_userinfo_table;
begin
  --將多條記錄的值同時(shí)插入到自定義類型的變量中
  SELECT typeof_userinfo_row(empno,ename) BULK COLLECT INTO FunctionResult FROM emp e;
  RETURN(FunctionResult);
end FUN_TEST1;

調(diào)用該函數(shù),并打印執(zhí)行結(jié)果

declare 
res typeof_userinfo_table;
i NUMBER := 1;
begin
  res := FUN_TEST1();
  WHILE i <= res.LAST  LOOP
  	DBMS_OUTPUT.PUT_LINE(res(i).user_id || ' ' ||res(i).user_name);
		i := i + 1;
	END LOOP;
end;

執(zhí)行結(jié)果

到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)自定義類型type的用法詳解的文章就介紹到這了,更多相關(guān)Oracle的type內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle查詢表占用的空間(表大小)的3種方法

    Oracle查詢表占用的空間(表大小)的3種方法

    這篇文章主要給大家介紹了關(guān)于Oracle查詢表占用的空間(表大小)的3種方法,表空間是oracle數(shù)據(jù)庫(kù)中最大的邏輯單位與存儲(chǔ)空間單位,數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)表空間為數(shù)據(jù)庫(kù)對(duì)象分配空間,需要的朋友可以參考下
    2023-10-10
  • 查找oracle數(shù)據(jù)庫(kù)表中是否存在系統(tǒng)關(guān)鍵字的方法

    查找oracle數(shù)據(jù)庫(kù)表中是否存在系統(tǒng)關(guān)鍵字的方法

    遇到列說(shuō)明無(wú)效的報(bào)錯(cuò)情況,這是由于數(shù)據(jù)庫(kù)列名起的不好引起的,名字用到了數(shù)據(jù)庫(kù)的關(guān)鍵字
    2014-07-07
  • oracle修改scott密碼與解鎖的方法詳解

    oracle修改scott密碼與解鎖的方法詳解

    本篇文章是對(duì)oracle修改scott密碼與解鎖的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Oracle?CDB管理實(shí)現(xiàn)多租戶管理功能

    Oracle?CDB管理實(shí)現(xiàn)多租戶管理功能

    這篇文章主要介紹了Oracle?CDB管理實(shí)現(xiàn)多租戶管理功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-12-12
  • Navicat連接Oracle數(shù)據(jù)庫(kù)報(bào)錯(cuò):Oracle library is not loaded的解決方案

    Navicat連接Oracle數(shù)據(jù)庫(kù)報(bào)錯(cuò):Oracle library is not&nb

    這篇文章主要介紹了解決Navicat連接Oracle數(shù)據(jù)庫(kù)提示oracle library is not loaded的問(wèn)題,本文通過(guò)圖文結(jié)合的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-06-06
  • Oracle SQL性能優(yōu)化系列學(xué)習(xí)一

    Oracle SQL性能優(yōu)化系列學(xué)習(xí)一

    Oracle SQL性能優(yōu)化系列學(xué)習(xí)一...
    2007-03-03
  • oracle創(chuàng)建dblink方法示例

    oracle創(chuàng)建dblink方法示例

    這篇文章主要介紹了oracle創(chuàng)建dblink方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Oracle中創(chuàng)建和管理表詳解

    Oracle中創(chuàng)建和管理表詳解

    以下是對(duì)Oracle中的創(chuàng)建和管理表進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • Oracle使用rownum分頁(yè)方式實(shí)例代碼

    Oracle使用rownum分頁(yè)方式實(shí)例代碼

    ROWNUM是一個(gè)序列,是oracle數(shù)據(jù)庫(kù)從數(shù)據(jù)文件或緩沖區(qū)中讀取數(shù)據(jù)的順序,這篇文章主要給大家介紹了關(guān)于Oracle使用rownum分頁(yè)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Oracle常用dump命令,記錄一下備查。

    Oracle常用dump命令,記錄一下備查。

    Oracle下常用的dump命令記錄,方便以后使用查詢。
    2008-06-06

最新評(píng)論