最近因為項目跟其他項目對接,兩邊采用的數據庫不一樣(我方采用的是sql server,而他們采用的是Oracle數據庫),所以在獲取數據時出現了一些問題。
因為sql server 數據庫的特性,在設置字符串的時候默認選擇的時不設置長度,默認為最大長度(sql server 特性 保存多長就用多大空間,並不會默認為用最大空間,這樣節省空間,還有利於后期維護,不至於后期因為某些問題導致字段長度不夠,需要修改數據庫,這樣很麻煩)。
在對接時,發現oracle 數據庫把 nvarchar 當作大字段處理,導致讀取不出來數據,需要我們提供的sql server 視圖字段限制一下長度,這可把我難壞了,網上搜了半天也沒有搜到,后來請教大神給解決掉了。現在把方法貼到下面,供大家參考,有什么不對之處,希望大家多多指教。
順便說一下,創建視圖,一般時create View,但是sql server 提供了可視操作,很簡單。大家可以了解一下。
這樣代碼創建的視圖字段的長度 是與table 表里的字段類型長度一個樣的
create View view1 as select ID,identifier from table
create View view1 as select ID,CAST (Identifier, AS nvarchar(100)) AS Identifier from table
這樣 視圖里字段長度就改成設置的固定長度100了。