我們的應用程序適用於Oracle 10g數據庫,我們計劃現在將其遷移到exadata。 爲此,我們必須遵循exadata可接受的一些合規性。 其中一個是添加語句每一個現有的包/過程/函數的定義開始alter session NLS_LENGTH_SEMANTICS =程序包/存儲過程中的CHAR
alter session set NLS_LENGTH_SEMANTICS='CHAR'
我只是想檢查,可以改變會話改變這個會話變量影響代碼的功能? 在向所有對象添加此語句時,我們必須記住哪些事情?
任何線索將高度讚賞
我以前想過改變這個設置,但是被[本頁]上的警告嚇到了(http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams152.htm#REFRN10124 )。我不確定這是一個真正的警告還是20年未更新的內容。 – 2014-10-22 19:31:35
這是我最近提到的。 https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:29518831139714 - 我最近將一個數據庫永久更改爲CHAR語義,11.2,以測試場景我的數據庫產品,並沒有不良影響。這就是說,我認爲這值得進一步考慮。通常如果有問題,Tom Kyte會提出來。在那個線程中,他沒有。 – codenheim 2014-10-22 20:07:36
看到我不是唯一被湯姆誤導的人。 https://community.oracle.com/thread/2194933 - 讀完之後,並注意到11.2版文檔中的警告是在稍後修補的(在我多年前閱讀之後),我扭轉了立場。我對Oracle的看法是,他們對兼容性和安全性非常小心,所以我相信文檔和Tom Kyte都是如此。但是閱讀Sergiusz Wolicki(甲骨文)現在在文檔中的警告,這是一個錯誤。 – codenheim 2014-10-22 20:12:29