【问题标题】:Get lower case letters from oracle 10g columns从 oracle 10g 列中获取小写字母
【发布时间】:2014-07-29 18:17:54
【问题描述】:

以下查询显示使用 oracle 10g 数据库中的第一个名称和密码验证用户登录凭据。

在我的数据库中,名字包含大写和小写,但从前端我总是得到小写字母。

SELECT customer_name, CUSTOMER_ID
  FROM customer
 WHERE     first_name = '"+customer.getFirstname()+"'
       AND password = '"+customer.getPassword()+"'

我只想用小写的 db 检查。任何可能的方式与 oracle 查询..?

【问题讨论】:

    标签: java oracle oracle10g


    【解决方案1】:

    只检查小写名称,而不是密码!密码应包含小写和大写字母,并可能包含特殊符号以提供更好的保护。

    SELECT customer_name, customer_id
      FROM customer
     WHERE     lower(first_name) = lower('"+customer.getFirstname()+"')
           AND password = '"+customer.getPassword()+"'
    

    【讨论】:

      【解决方案2】:

      在查询本身中你可以这样做。

      为了降低

      lower(first_name)
      

      鞋帮

      upper(first_name)
      

      您可以在此处更改查询,如下所示。

      SELECT customer_name, CUSTOMER_ID from customer where lower(first_name)='"+customer.getFirstname()+"' AND password='"+customer.getPassword()+"'
      

      【讨论】:

        【解决方案3】:

        试一试

        SELECT customer_name, customer_id
          FROM customer
         WHERE     lower(first_name) = lower('"+customer.getFirstname()+"')
               AND lower(password) = lower('"+customer.getPassword()+"')
        

        【讨论】:

        • 这里 customer.getFirstname() 总是小写,所以不需要使用 lower('"+customer.getFirstname()+"')
        • @vinod_vh 是的,你是对的,但是如果逻辑在后期发生变化怎么办!
        猜你喜欢
        • 2015-11-06
        • 1970-01-01
        • 2021-09-12
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        相关资源
        最近更新 更多