Sql 没有用户输入的参数化查询?

Sql 没有用户输入的参数化查询?,sql,Sql,我只是在这里反复检查,我相信其他人偶尔会有这样的问题: 当不涉及用户输入时,是否有任何理由使用参数化查询?例如,在将随机字符串放入SQL表中时。为了安全起见,选择“是”。即使您现在确信当前值是绝对安全的,您是否可以肯定地保证将来不会有其他人进行更改,或出于不同目的使用同一查询?为了安全起见,是的。即使您现在确信当前值是绝对安全的,您是否可以肯定地保证没有其他人会在将来的某个日期进行更改,或将同一查询用于不同的目的?如果没有其他原因,我喜欢代码的干净程度。理论上,有几个查询可以在没有参数化的情况下

我只是在这里反复检查,我相信其他人偶尔会有这样的问题:


当不涉及用户输入时,是否有任何理由使用参数化查询?例如,在将随机字符串放入SQL表中时。

为了安全起见,选择“是”。即使您现在确信当前值是绝对安全的,您是否可以肯定地保证将来不会有其他人进行更改,或出于不同目的使用同一查询?

为了安全起见,是的。即使您现在确信当前值是绝对安全的,您是否可以肯定地保证没有其他人会在将来的某个日期进行更改,或将同一查询用于不同的目的?

如果没有其他原因,我喜欢代码的干净程度。理论上,有几个查询可以在没有参数化的情况下安全运行,但是构建字符串要难看得多,而且当需要维护时,难看的代码很难理解

例如,在C#中(本例中为PL/SQL查询)


如果没有其他原因,我喜欢代码的干净程度。理论上,有几个查询可以在没有参数化的情况下安全运行,但是构建字符串要难看得多,而且当需要维护时,难看的代码很难理解

例如,在C#中(本例中为PL/SQL查询)


如果您有一个完全静态的SQL,就不需要参数化查询。只要SQL查询的某些部分(例如字符串或数字文本)可能发生变化(无论这是由于用户输入还是随机数生成器),使用参数化查询可能有意义。也许明天这个变量就是用户输入。此外,sql参数还可以防止其他问题,如数据类型转换或本地化问题。使用参数通常效率更高。如果SQL是完全静态的,就不需要参数化查询。只要SQL查询的某些部分(例如字符串或数字文本)可能发生变化(无论这是由于用户输入还是随机数生成器),使用参数化查询可能有意义。也许明天这个变量就是用户输入。此外,sql参数还可以防止其他问题,如数据类型转换或本地化问题。使用参数通常也更有效。
String query = @"SELECT thing, stuff
                 FROM table_of_things
                 WHERE thing = :thing
                 OR stuff = :stuff";