在java中我們經常使用一下語法

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

          其中PK_TEST結構如下:

          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)

          在表中插入測試數據:
          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執行:
          SELECT * FROM PK_TEST WHERE ID ='1';
          SELECT * FROM PK_TEST WHERE ID ='1        ';

          都沒有問題,但如果我將前面java語法pstmt.setString(1,idValue);中的idValue賦值為'1',程序就是取不到值;
          繼續測試:
          SELECT * FROM PK_TEST WHERE ID = :ID;
          賦值為'1',沒有結果;
          賦值為'1        ',結果出來了;

          可見無論在jdbc還是在數據庫中軟編碼和硬編碼有一定的區別。

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

          posted on 2006-03-08 21:28 野草 閱讀(454) 評論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 获嘉县| 嘉峪关市| 于田县| 原平市| 云南省| 长汀县| 鄂托克旗| 缙云县| 光泽县| 桦南县| 朔州市| 宝兴县| 永善县| 禹城市| 鹰潭市| 定襄县| 武隆县| 天镇县| 丹棱县| 根河市| 日照市| 宁陕县| 襄垣县| 东港市| 永城市| 渝中区| 姜堰市| 荔浦县| 普兰县| 邯郸县| 耿马| 黄骅市| 临城县| 灌南县| 肇东市| 兴隆县| 九龙县| 茌平县| 东至县| 运城市| 高陵县|