为什么这会返回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行(正如我想要的第一个查询)?
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
答案 0 :(得分:2)
这可能是LOGINNAME的数据类型冲突吗?尝试使用VARCHAR2,而不是CHAR,因为它用空格填充字符串。
答案 1 :(得分:0)
您可以使用TRIM
关键字来终止空格,因为varchar的类型使用LIKE
代替'='
进行比较。