首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 資料型態完整速查表:CHAR/VARCHAR2/NUMBER/DATE/LOB/ROWID 對照

     編輯:Oracle 資料庫基礎

前言

選擇正確資料型態關係資料完整性、儲存效率與效能。本文整理 Oracle 19c/21c 主流資料型態,含最大長度、儲存特性、適用場景與常見誤區。

字元型態

型態最大長度特性適用場景
CHAR(n)2,000 Bytes固定長度,不足右補空格,比較時 Blank-padded固定長代碼 (ISO 國別碼、狀態碼)、主鍵為定長字串
NCHAR(n)2,000 Bytes / 字符Unicode 固定長度,字符語意 (NLS_NCHAR_CHARACTERSET)多語系固定長欄位
VARCHAR2(n)4,000 Bytes (MAX_STRING_SIZE=EXTENDED 時 32,767)可變長度,**不補空格**,比較 Non-padded,**標準首選**一般文字、描述、JSON/XML 片段
NVARCHAR2(n)4,000 Bytes / 字符Unicode 可變長度多語系可變長文字

數值型態

型態精度/範圍儲存備註
NUMBER(p, s)p=1~38 位精度, s=-84~127 小數位可變長度 (1~22 Bytes),科學記號儲存**通用數值型態**,整數、金額、科學計算皆適用
BINARY_FLOAT32-bit IEEE 7544 Bytes單精度浮點,近似值運算
BINARY_DOUBLE64-bit IEEE 7548 Bytes雙精度浮點,近似值運算

日期時間型態

型態精度/範圍儲存備註
DATE秒 (BC 4712 ~ AD 9999)7 Bytes 固定含年月日時分秒,**無時區、無毫秒**
TIMESTAMP(p)毫秒/微秒/奈秒 (p=0~9, 預設 6)7~11 Bytes高精度時間戳,無時區
TIMESTAMP(p) WITH TIME ZONE同上 + 時區位移13 Bytes跨時區應用必備
TIMESTAMP(p) WITH LOCAL TIME ZONE同上 + 自動轉換至 Session 時區11 Bytes資料庫統一儲存 UTC,顯示自動轉換
INTERVAL YEAR TO MONTH年月間隔5 Bytes年齡、期限計算
INTERVAL DAY TO SECOND日時分秒間隔11 Bytes精確持續時間

大物件 (LOB) 型態

型態最大容量儲存位置適用場景
BLOB4 GB ~ 128 TB (依區塊大小)資料庫內 (SecureFiles 建議)二進制檔案 (圖片、PDF、加密資料)
CLOB同 BLOB資料庫內大型文字 (日誌、文章、XML/JSON 完整文件)
NCLOB同 BLOB資料庫內Unicode 大型文字
BFILEOS 檔案系統上限**資料庫外 (唯讀)**超大靜態檔案 (影片、備份檔),資料庫只存指標

特殊識別型態

型態用途長度備註
ROWID物理行地址 (檔案、區塊、槽號)10 Bytes (Extended)最快單行存取路徑,跨表不通用
UROWID通用行識別碼 (含索引組織表、外部表)4,000 Bytes支援所有表類型,LOGICAL ROWID

已棄用/不建議使用的型態

  • LONG / LONG RAW:單表僅 1 欄、無法索引、操作受限,**請改用 CLOB/BLOB**。
  • RAW(n):2,000 Bytes 內二進制,小量加密雜湊可用,大量改用 BLOB。
  • MLSLABEL:Trusted Oracle 專用,標準版無效。

選型口訣

「字串用 VARCHAR2、金額用 NUMBER(19,4)、時間戳用 TIMESTAMP(6) WITH LOCAL TIME ZONE、大文件用 SecureFiles LOB、行地址用 ROWID」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved