Oracle 與 SQL Server 核心架構大同小異,但資料類型細節差異常困擾初學者。本文提供完整對照表,助您快速轉換與遷移。
| Oracle | SQL Server | 說明 |
|---|---|---|
| VARCHAR2(n) | VARCHAR(n) | 變長字串,Oracle 最大 4000 位元組 |
| CHAR(n) | CHAR(n) | 固定長度字串 |
| NUMBER(p,s) | DECIMAL(p,s) / NUMERIC(p,s) | 精確數值,p=精度 s=小數位 |
| FLOAT / BINARY_FLOAT / BINARY_DOUBLE | FLOAT / REAL | 近似數值 |
| DATE | DATETIME / SMALLDATETIME | 日期時間,Oracle 精確到秒 |
| TIMESTAMP | DATETIME2 | 高精度時間戳記 |
| CLOB | TEXT / VARCHAR(MAX) | 大型字元物件 |
| BLOB | IMAGE / VARBINARY(MAX) | 大型二進位物件 |
| RAW / LONG RAW | VARBINARY / IMAGE | 原始二進位資料 |
| ROWID / UROWID | 無直接對應 | 實體/邏輯列地址 |
VARCHAR2 語義明確為變長,SQL Server VARCHAR 同義NUMBER 通用性極強,SQL Server 分 DECIMAL/FLOAT 更細DATE 含時間,SQL Server 需 DATETIMEVARCHAR(MAX)/VARBINARY(MAX) 取代舊型 TEXT/IMAGE註:原文包含圖片對照表,此處以文字表格重構核心內容。