我是新來使用intersytems緩存和麪臨的問題,我正在查詢存儲在緩存中的數據,暴露的類似乎不準確地代表數據基礎系統。存儲在全局變量中的數據幾乎總是大於目標代碼中定義的數據。Intersystems緩存 - 保持對象代碼,以確保數據符合對象定義
因此,我經常遇到像下面這樣的錯誤。
Msg 7347, Level 16, State 1, Line 2
OLE DB provider 'MSDASQL' for linked server 'cache' returned data that does not match expected data length for column '[cache]..[namespace].[tablename].columname'. The (maximum) expected data length is 5, while the returned data length is 6.
有沒有人有實現某種類型的質量管理過程,以確保對象定義(SQL映射)在這樣保持遠離他們能夠容納這是在全局進行持久化數據的經驗嗎?
Property columname As %String(MAXLEN = 5, TRUNCATE = 1) [ Required, SqlColumnNumber = 2, SqlFieldName = columname ];
在這個特定的示例中,系統具有爲5的最大LEN定義的列,但是存儲在系統中的數據是長6個字符。
如何主動監控和修復此類情況。
/*
我沒有在高速緩存
*/
@psr - 澄清修復:我的意思是確定大於sql表定義的數據並重新定義sql表。或者最低限度,開始向系統管理員提供指標,指明預期數據類型(類型和長度)中的數據百分比。 – 2012-01-17 18:08:56
如果您喜歡答案,則可以將其標記爲已接受。 – psr 2012-01-19 23:43:17