自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle服務(wù)中來確認(rèn)數(shù)據(jù)類型內(nèi)部的構(gòu)造

數(shù)據(jù)庫 Oracle
在Oracle服務(wù)里來確認(rèn)數(shù)據(jù)類型的內(nèi)部具體構(gòu)造,中我們需要對Oracle數(shù)據(jù)類型有一個(gè)很好的研究,以下的文章涉及到 多種Oracle數(shù)據(jù)類型。

本文主要講述的是Oracle基本數(shù)據(jù)類型的內(nèi)部存儲(chǔ)格式的目標(biāo),即在Oracle服務(wù)中來確認(rèn)相關(guān)數(shù)據(jù)類型的內(nèi)部具體構(gòu)造 ,以下就是數(shù)據(jù)庫的相關(guān)內(nèi)容的具體介紹,希望你在瀏覽完此篇文章之后會(huì)有會(huì)所了解。

目標(biāo):在Oracle服務(wù)中確認(rèn)數(shù)據(jù)類型的內(nèi)部構(gòu)造

解釋數(shù)據(jù)類型在內(nèi)部是如何存儲(chǔ)的

內(nèi)部存儲(chǔ)知識(shí)

能更好的解釋和分析塊dumps

某些崩潰診斷必須的技能

幫助客戶分析各種存儲(chǔ)問題

是明白內(nèi)部事務(wù)的必須步驟

Oracle數(shù)據(jù)類型包含:

內(nèi)置數(shù)據(jù)類型

用戶自定義數(shù)據(jù)類型

結(jié)構(gòu)型對象類型

聚合型

VARRAYS

嵌套表

引用類型(引用對象類型)

注意的是,Oracle服務(wù)為程序提供了很多種數(shù)據(jù)類型,例如數(shù)字格式的:number,integer,float,decimal字符格式的:char,charz,string,varchar內(nèi)部數(shù)據(jù)類型從內(nèi)部向外部自動(dòng)的由Oracle來轉(zhuǎn)換。

內(nèi)置數(shù)據(jù)類型

 

  1. char,nchar,varchar2,nvarchar2   
  2. number   
  3. raw   
  4. long,long raw   

 

date datetime以及時(shí)間間隔類型

 

  1. clob,blob,nclob,bfile   
  2. rowid,urowid  

 

列中的數(shù)據(jù)取決于列的數(shù)據(jù)類型,但是數(shù)據(jù)類型并不是存儲(chǔ)列數(shù)據(jù)的塊中,本章以及后續(xù)課程將使用sql dump函數(shù)。范例中列的名字為TYP,關(guān)聯(lián)的內(nèi)部代碼是各種數(shù)據(jù)類型,內(nèi)部代碼存儲(chǔ)在數(shù)據(jù)字典中,在表col$的列type#下。

char和varchar2

字符類型數(shù)據(jù)通常是以數(shù)據(jù)庫的字符集(單字節(jié))存儲(chǔ)的char固定長度的字符串,最多2000字符;內(nèi)部代碼:96 varchar2浮動(dòng)長度字符串,最多4000字符內(nèi)部代碼:1為了能識(shí)別dump的輸出文件,必須要知道他們存儲(chǔ)的代碼頁。

char在char類型的列中,所有的空字節(jié)被空格(代碼32)填充長度固定由于char類型代碼為96,長度固定,因此很容易分辨出那些是用來填充的空格

varchar2 varchar2列中,將不用空格填充。

長度不固定

nchar和nvarchar2字符數(shù)據(jù)也可以使用國家字符集(多字節(jié))設(shè)置存儲(chǔ)nchar固定長度,最多2000字節(jié)內(nèi)部代碼:96 nvarchar2浮動(dòng)長度,最多4000字節(jié)內(nèi)部代碼:1

number數(shù)字類型內(nèi)部存儲(chǔ)是一個(gè)字節(jié)的變長阿拉伯?dāng)?shù)字?jǐn)?shù)組數(shù)字類型有以下格式< [length]>,sign bit/expornent,digit1,digit2,……,digit20內(nèi)部代碼:2注意的是,number和float有同樣的內(nèi)部特性。

指數(shù)類型指數(shù)字節(jié)包含三個(gè)部分:符號(hào)位:是整個(gè)字節(jié)的最高位(128)

如果是0,則數(shù)字是負(fù)數(shù)如果是1,則數(shù)字是正數(shù)或者0偏移量:總是65指數(shù):范圍為-65到62標(biāo)示該數(shù)字100為基礎(chǔ)的科學(xué)記數(shù)法如果指數(shù)是200=128+65+7,那么指數(shù)就是7,因此數(shù)據(jù)應(yīng)該是大于100的7次方如果一個(gè)數(shù)字是服侍,指數(shù)也同樣的計(jì)算,但是要從255翻轉(zhuǎn),例如,一個(gè)指數(shù)為7的負(fù)數(shù)的計(jì)算是:-(125+65+7)=-(200)=255-200=77偏移量使得負(fù)數(shù)的指數(shù)不需要使用別的字節(jié)來作為指數(shù)標(biāo)志如果第一個(gè)字節(jié)大于128,那么數(shù)字是正的:exponent=first byte 128 -65=first bytes193如果第一個(gè)字節(jié)小于128,那么數(shù)字是負(fù)的:

exponent=(255-first byte)-128-65=62-first byte

digits大部分?jǐn)?shù)字的最高位是digit1使用100作為基數(shù)(每一個(gè)數(shù)字是0-99之間)

對于正數(shù):對于每個(gè)digit使用進(jìn)位(1…100)

對于負(fù)數(shù):不是使用進(jìn)位,而是從101減基數(shù)標(biāo)志102(0×66)是最后的數(shù)據(jù)庫的進(jìn)位中是沒有0的,0標(biāo)示數(shù)據(jù)結(jié)束。雖然現(xiàn)在該規(guī)則已經(jīng)廢除,但是為了兼容,還是保留。現(xiàn)在Oracle服務(wù)通過計(jì)算長度來知道數(shù)據(jù)的結(jié)束。

存儲(chǔ)是基于矢量對照語法的。從左邊開始,比較數(shù)據(jù)的大小直到:一個(gè)部分不同,在這種情況下,最低的字節(jié)決定最小數(shù)字一個(gè)數(shù)據(jù)已經(jīng)完成,在這種情況下,這個(gè)是兩個(gè)數(shù)字中的最小的。

所有的數(shù)據(jù)都比較完成,在這種情況下,兩個(gè)數(shù)字相等負(fù)數(shù)從101開始存儲(chǔ),因此比較下面的數(shù)字:4=<193,5>,3=<193,4>比較這些字節(jié),+4大于+3.負(fù)數(shù)-4和-3.指數(shù)必須是62,如果值不是從101開始,則可能-4=<62,5>并且-3=<62,4>,這個(gè)時(shí)候,-4比 -3大,顯然是錯(cuò)誤的。但是從101開始以后,數(shù)字就變成了-4=<62,97>并且-3=<62,98>.現(xiàn)在-3是比-4大的。

字節(jié)102附加在負(fù)數(shù)的后面,保證他們排序的正確性。比較數(shù)字-100<61,100,102>和-115< 61,100,86,102>如果102不在這里,那么<61,100>和<61,100,86>將得到錯(cuò)誤的結(jié)果,- 100比-115小。

正數(shù)的例子:因?yàn)閿?shù)字是基于100的,因此最大的數(shù)字是99.指數(shù)從-65到62,因此,Oracle的number的范圍為:1*100(-65)=1*10(-120)到99*100(62)+99*100(61)…… 無限接近1*10^(126)

但是,因?yàn)樽畲蟮木仁?8,Oracle將對超出精度的數(shù)據(jù)進(jìn)行round操作。如果數(shù)字的字節(jié)數(shù)超過21,Oracle服務(wù)就會(huì)報(bào)溢出16進(jìn)制也包括在這里面,因?yàn)樵趬Kdump中是一樣的表現(xiàn)的要注意第二個(gè)字節(jié)是如何增加和減少的,數(shù)字是基于100的。

【編輯推薦】

  1. Windows 7下安裝Oracle 11g相關(guān)問題解決方法
  2. Oracle體系結(jié)構(gòu)中兩個(gè)概念詳解
  3. Oracle體系結(jié)構(gòu)中的基本概念,數(shù)據(jù)庫的介紹
  4. Oracle安裝腳本的相關(guān)代碼介紹
  5. Oracle內(nèi)存結(jié)構(gòu)的相關(guān)篇SGA
責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2023-10-08 12:34:16

Pydantic數(shù)據(jù)轉(zhuǎn)換

2010-10-27 14:52:04

ORACLE數(shù)據(jù)類型

2009-11-17 10:01:11

Oracle數(shù)據(jù)類型

2010-04-23 14:08:11

Oracle數(shù)據(jù)類型

2010-03-31 18:56:56

Oracle 數(shù)據(jù)類型

2010-04-07 16:21:11

Oracle常用命令

2010-04-01 10:55:48

Oracle 數(shù)據(jù)類型

2010-03-30 16:33:55

Oracle數(shù)據(jù)類型

2022-10-27 20:42:04

JavaScripJava編程語言

2010-08-25 13:36:53

DB2Oracle

2010-04-27 11:03:39

Oracle Java

2022-03-01 23:31:29

Python編程語言變量

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2010-04-21 15:10:14

Oracle數(shù)據(jù)類型

2010-09-06 17:35:43

SQL函數(shù)

2020-10-26 07:16:10

MySQLSchema數(shù)據(jù)

2021-03-02 21:52:48

Hive數(shù)據(jù)類型

2010-09-13 10:21:26

sql server2

2010-10-08 14:45:43

mysql中int

2010-08-10 17:17:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)