posts - 3,comments - 1,trackbacks - 0
          今天修改一個前人的程序,一段sql文,里面的內容一個很奇怪的地方,
          SELECT
            .
            ..
          FORM
             TABLE1 A,
             TABLE2 B
          WHERE
             A.FROMID 
          = B.TOID
             
          AND ..
             
          AND .


          這里面a表中的FromId 是char(8),b表中的toId是char(9) 一開始感覺這能出來數據嗎 可真他娘的出來了,暈!!!,公司不讓上網,看書找不到介紹,自己慢慢猜測,一定是oracle自動給位數小的補足了空格。
          回到家里上網查了一下,找到答案了,大概摘錄一下,給自己以后提個醒,如果有什么不對的地方希望那個大家批評指教!!!

          Oracle使用以下兩種比較規則:
          1、空格補齊比較語法
          對于類型CHAR、NCHAR、text literals、USER函數值, 在進行比較時, 先在較短的那個
          字符串后補上空格以使長度相等, 然后再進行比較. 注意b.toId = ‘12345678’也會是true的
          2、非補齊比較語法
          對于類型VARCHAR2、NVARCHAR2, 則不用補齊, 直接進行比較.

          posted on 2010-07-20 06:15 高天賜 閱讀(523) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 织金县| 富裕县| 高清| 霞浦县| 漳浦县| 望江县| 称多县| 烟台市| 疏附县| 义乌市| 自治县| 鹿邑县| 册亨县| 佛教| 东台市| 望奎县| 福清市| 涟水县| 定襄县| 绍兴市| 林甸县| 文化| 吉首市| 登封市| 东乌珠穆沁旗| 精河县| 尉氏县| 蛟河市| 叶城县| 昌乐县| 甘谷县| 洛阳市| 定兴县| 北流市| 溧水县| 安龙县| 克拉玛依市| 都昌县| 象州县| 青神县| 康乐县|