1. 程式人生 > >Oracle中CHAR型別自動補足空格的問題

Oracle中CHAR型別自動補足空格的問題

在ORACLE中,CHAR型別的欄位值會自動補足空格。所以當其作為條件時,就有可能查不出想要的資料。
如果不允許改DB設計的話,那就用 RTRIM來解決吧。

DB:
  CREATE TABLE TEST
  (
  TEST_ID VARCHAR2(64) NOT NULL,
   TEST_CHAR CHAR(10),
  CONSTRAINT TEST_ID PRIMARY KEY (TEST_ID)
   );
  INSERT INTO TEST VALUES('1','a');

測試程式碼:
  Session session = factory.getCurrentSession();
   session.beginTransaction();
  List list = session.createQuery("FROM Test WHERE RTRIM(TEST_CHAR) = 'a'").list();
  session.close();