在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 野草 閱讀(457) 評論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 大石桥市| 宿松县| 宽城| 德庆县| 南木林县| 开江县| 浪卡子县| 宁化县| 永城市| 蓬莱市| 成安县| 开远市| 西吉县| 本溪| 宝鸡市| 开阳县| 罗甸县| 英德市| 六枝特区| 盐边县| 岑溪市| 东至县| 大名县| 洛扎县| 上高县| 观塘区| 旬邑县| 罗定市| 开原市| 黑水县| 东海县| 勐海县| 布尔津县| 吉首市| 米脂县| 湟中县| 游戏| 焉耆| 新疆| 沛县| 建德市|