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

          ......
          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)

          在表中插入測試數(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        ';

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

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

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

          posted on 2006-03-08 21:28 野草 閱讀(452) 評論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 石屏县| 札达县| 兴安县| 合江县| 政和县| 九寨沟县| 涪陵区| 通辽市| 新乡县| 衡阳市| 绵阳市| 鲁甸县| 罗甸县| 唐河县| 万年县| 大理市| 临沂市| 永济市| 永登县| 英德市| 巨鹿县| 历史| 隆子县| 无为县| 毕节市| 深州市| 喜德县| 大荔县| 沈丘县| 白水县| 吴江市| 会昌县| 泸定县| 仁布县| 元朗区| 阳泉市| 唐海县| 汽车| 蒙自县| 凤翔县| 大厂|