在java中我們經(jīng)常使用一下語(yǔ)法

          ......
          String exSQL = " SELECT * FROM PK_TEST WHERE ID = ?";     
          pstmt = conn.prepareStatement(exSQL);
          pstmt.setString(1,idValue);
          ResultSet rs = pstmt.executeQuery();
          ......

          其中PK_TEST結(jié)構(gòu)如下:

          CREATE TABLE PK_TEST (
            ID      CHAR (9)      NOT NULL,
            NAME    VARCHAR2 (40),
            GENDER  CHAR (1),
            CONSTRAINT PK_PK_TEST
            PRIMARY KEY ( ID ) ) ;
          注意:ID是CHAR (9)

          在表中插入測(cè)試數(shù)據(jù):
          INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('1        ', 'test1', '1');
          INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('2        ', 'test2', '0');
          INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('3        ', 'test3', '1');
          INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('123456789', 'test4', '0');
          INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('987654321', 'test5', '1');

          使用Toad執(zhí)行:
          SELECT * FROM PK_TEST WHERE ID ='1';
          SELECT * FROM PK_TEST WHERE ID ='1        ';

          都沒(méi)有問(wèn)題,但如果我將前面java語(yǔ)法pstmt.setString(1,idValue);中的idValue賦值為'1',程序就是取不到值;
          繼續(xù)測(cè)試:
          SELECT * FROM PK_TEST WHERE ID = :ID;
          賦值為'1',沒(méi)有結(jié)果;
          賦值為'1        ',結(jié)果出來(lái)了;

          可見(jiàn)無(wú)論在jdbc還是在數(shù)據(jù)庫(kù)中軟編碼和硬編碼有一定的區(qū)別。

          唉!整理數(shù)據(jù)庫(kù)中的主鍵吧:ID = SUBSTR(TRIM(ID)||'000000000',0,9);

          posted on 2006-03-08 21:28 野草 閱讀(457) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): oracle
          主站蜘蛛池模板: 自治县| 松桃| 苏州市| 新安县| 济阳县| 奎屯市| 海宁市| 达州市| 丹寨县| 沙雅县| 黑河市| 鸡泽县| 红桥区| 前郭尔| 娱乐| 名山县| 泰安市| 福州市| 阿拉善左旗| 子洲县| 罗田县| 辽阳市| 石渠县| 望江县| 潼关县| 漠河县| 阿克陶县| 华宁县| 房产| 高邮市| 祥云县| 北宁市| 兴安县| 绥德县| 富川| 手游| 石门县| 涟源市| 南投市| 白沙| 绥德县|