資料轉換考量

當伺服器與用戶端之間交換資料 (尤其是二進位資料) 時,有數個資料轉換問題需要考量。

例如,在具有不同位元組排序架構的作業系統之間傳送資料時,數值資料必須經歷位元組反轉處理程序,才能還原其正確的數值。 不同的作業系統也有參照記憶體中數值資料的特定對齊需求; 如果未觀察到這些需求,則部分作業系統會導致程式異常狀況。 除非在二進位資料類型 (例如 BLOB 或 VARCHAR FOR BIT DATA) 中內嵌字元資料,否則資料庫會自動轉換字元資料類型。

有兩種方法可避免資料轉換問題:

  • 一律將物件轉換成可列印的字元資料類型,包括數值資料。

    此方法的缺點是由於需要許多潛在轉換,而導致效能變慢,以及增加存取這些物件 (例如用戶端或轉換函數本身) 的程式碼複雜性。

  • 為轉換成二進位資料類型的物件設計作業系統中立格式,類似於 Java™ 實作所採用的方法。 請務必:
    • 包裝或解壓縮這些壓縮物件時請小心,以適當地編碼或解碼個別資料類型,並避免資料毀損或程式錯誤。
    • 在轉換類型中包含足夠的標頭資訊,以便可以獨立於用戶端或伺服器作業系統正確地解譯編碼物件的其餘部分。
    • 使用 CREATE FUNCTION 的 DBINFO 選項,將與資料庫伺服器環境相關的各種性質傳遞至轉換函數。 這些性質可以以作業系統中性格式包含在標頭中。

盡可能寫入轉換函數,以便它們正確地處理與在伺服器與用戶端之間傳送資料相關聯的所有複雜性。 當您設計應用程式時,請考量環境的特定需求,並評估完整一般與簡易性之間的取捨。 例如,如果您知道資料庫伺服器及其所有用戶端都在 AIX® 環境中執行且使用相同的字碼頁,則可以決定忽略先前討論的考量,因為目前不需要轉換。 不過,如果您的環境在未來變更,您可能需要付出相當大的努力來修訂原始設計,以正確處理資料轉換。