HY,
假设您在列中包含了CVA数据库值cAmeLCaSe,并且您始终希望在视图中显示它们大写。
现在使用(例如)Oracle的UPPER-Function选择那些托管是否更好 或者循环结果并在选择完成后从Java代码中调用.toUpperCase()方法?
我知道这是一个普遍的问题,我会在对上述两种可能性进行性能混乱之后进行评论。但是我更多地追求一般信息来解决这些问题的好信息来源(例如“运行排序数据库或程序代码更好吗?”以及像.Net / Java这样的常见解决方案这样的问题Oracle / MSSQL Server。
非常感谢您花时间阅读这些问题,我感谢您的任何意见,并祝您有个美好的一天。
此致 Jan
答案 0 :(得分:4)
取决于使用大写值的位置和方式。
如果这只是前端使用的 (我假设使用“ view ”你做了不意味着数据库视图)那么我' d理想地使用用户的语言环境来toUpperCase()
。
如果您使用大写值进行比较,我会使用Oracle函数来确保您具有一致的行为。我想到的是将列值与字符串常量进行比较的条件:WHERE upper(foobar) = upper('SomeValue')
如果您使用的Java toUpperCase()
可能会应用与Oracle不同的(区域设置相关)规则。
答案 1 :(得分:1)
我相信我的代码总是应该与数据库无关。
String upper = string.toUpperCase();
因为,它与数据库无关。如果我将数据库转移到其他地方,我不需要更改我的代码。
简而言之,您应该考虑具体要求。