◆1. 安裝DB2后可以通過命令窗口這樣的命令行方式或控制中心這樣的圖形界面方式來操作,而如果你的數據庫服務端不在本機,則還需要在“客戶機配置輔助程序”中做一個客戶端連接的配置。
◆2. 控制中心中無法增刪改數據,只能編寫sql語句來實現而quest提供的工具雖然能增加數據,但居然無法用復制、粘貼和Tab鍵,必須逐個輸入,然后用鼠標點擊切換現存數據看來可以在單元格中編輯修改,但實際卻無法commit,呵呵,還是老老實實寫update語句,至于刪除數據,更是非寫delete語句不可。不過可以用pb以單元格方式編輯數據,相應的一個缺點是編輯數據的按鈕和刪除表的按鈕太近,萬一點錯了刪除表的按鈕,pb可是不作提示就把表給刪了的,faint
◆3. DB2的視圖里不能直接用order by語句,必須這樣寫 select × from(select a,b,c from table1 order by a)as tab
這種寫法的前提是你已經打過補丁了
◆4. 存儲過程的問題:
DB2提供ltrim函數和rtrim函數,但偏偏不提供trim函數,如果你希望去除字符兩端的空格,對不起,必須用ltrim(rtrim()) 的方式調用insert 語句里面居然不能用表達式賦值,必須把值先賦給一個變量調用其他存儲過程時竟然不能用常量做參數,必須把這個常量的值賦給一個變量,再以這個變量為參數。
select * from table fetch first n rows only 語句居然在存儲過程里不可用
◆5. 存儲過程里可以使用動態sql,但函數里卻不可以使用。
◆6. 遇到commit或rollback時自動關閉游標,所以需要慎重使用單獨提交。
proc builder老是在調試中內存不足,屏幕花掉。而如果斷點調試時暫停不進行下去的時間稍微長一點就會提示超時,受不了。
◆7. 開發中遇到的一個問題
在使用日期變量+1 MONTHS OR 日期變量-1 MONTHS 的方式取日期時,比如日期變量值為 2004-02-29時,存儲過程里將日期變量+1 MONTHS 賦值給另一
日期變量時會出錯。相應SQLSTATE為01506(db2 ? 01506): 對 DATE 或TIMESTAMP值進行了調整,以校正算術運算得出的無效日期。
如果要獲取的只是下一月份,可采用的替代方法是獲取當前日期所在月份的第一天作為基準后+1 MONTHS OR -1 MONTHS
◆8. 存儲過程的經驗
搞了半天搞不定,一查原來的文檔才了,原來tmd該死的DB2的存儲過程,是轉換為C后,進行編譯的。因此在數據庫服務器上要安裝一個C編譯器才能完成存儲過程的編譯。并且需要使用DB2SET命令,設置DB2_SQLROUTINE_COMPILER_PATH指向C編譯器的安裝路徑。如:db2set
DB2_SQLROUTINE_COMPILER_PATH=E:ProgramFilesMicrosoftVisualStudioVC98Binvcvars32.bat
文章來源于領測軟件測試網 http://www.kjueaiud.com/