較低

2011-01-13 63 views
1

爲什麼它返回0行較低

SELECT GARTUSERID, USER_CODE, UNITID, RANKCODE, RANKID, FIO, LOGINNAME, 
     START_DATE, EXPIR_DATE, NOTE, POSITION, ISCHGPASSWORD, IS_EXPIRDATE, 
     IS_BLOCKED, ROW_ID 
    FROM ACONTROL.GARTUSERS 
WHERE LOWER(LOGINNAME)=LOWER(:LOGIN) AND ROW_ID=:MD5PSWD 

,這將返回1行(因爲我想第一個查詢)Oracle查詢?

SELECT GARTUSERID, USER_CODE, UNITID, RANKCODE, RANKID, FIO, LOGINNAME, 
     START_DATE, EXPIR_DATE, NOTE, POSITION, ISCHGPASSWORD, IS_EXPIRDATE, 
     IS_BLOCKED, ROW_ID 
    FROM ACONTROL.GARTUSERS 
WHERE LOGINNAME=:LOGIN AND ROW_ID=:MD5PSWD 
+1

LOGINNAME列的定義是什麼?LOGIN包含了什麼? – 2011-01-13 17:10:21

+0

那個LOGINNAME的價值是什麼? – DOK 2011-01-13 17:10:24

回答

2

這可能是LOGINNAME的數據類型衝突嗎?嘗試使用VARCHAR2,而不是CHAR,因爲它用空格填充字符串。

0

您可以使用TRIM關鍵字來終止空格,因爲它是使用LIKE而不是'='進行比較的類型。