事件:接到乙個關於計費系統的使用者反饋的錯誤,我首先對儲存過程進行了檢查,仔細讀了pl/sql**發現並沒有錯誤的地方,這讓我很奇怪,而此時我不敢直接在使用者的系統上用toad除錯,就將這個問題向專案經理求助,他在將**放到使用者系統上除錯後發現是由於我的乙個比較語句丟擲異常而不能完成計算。
問題:這個比較語句是「日期」變數與「字串」變數的比較,字串中儲存的是yyyymmdd式的日期串。**中過多的使用了to_char轉換日期變數程字串變數完成日期比較的方法。我在當初修改**的時候造成了混淆,並且在此次檢查**的時候也保持這種混淆,而沒有看出問題。
經驗:在變數比較時應該以實際比較意義來轉換型別。如日期比較時比較的雙方都應該是日期變數(允許轉換),儘管比較結果可能正確,仍避免使用日期格式的字串進行比較的方法。
,臉都丟盡了
補充:7月27日與專案經理溝通了一下,得知在oracle按時間進行分割槽的表中用日期字串的比較方式效能更高一些。
Oracle相關問題
1 啟動oracle su oracle 2.開啟監聽服務 oracle localhost lsnrctl start 3.以sys使用者身份登入oracle 複製 oracle localhost sqlplus nolog sql plus release 11.2.0.1.0 product...
oracle 監聽相關的 一系列問題
自己裝了oracle 10.2.0後發現沒有listener.ora 便從網上找了個如下 generated by oracle configuration tools.listener description list description address protocol tcp host 1...
ORACLE 隨機數相關問題
1.隨機數包 select dbms random.value from dual 2.在 0.100 範圍內取隨機數 select trunc dbms random.value 0,100 from dual 3.大於字元 a 的10個字元隨機字串 select dbms random.stri...