0

嗨,

假设您在 cAmeLCaSe 列中有 Varchar-Database 值,并且您总是希望在视图中将它们显示为大写。

现在是更好地使用(例如)Oracle 的 UPPER-Function 选择这些条目,还是在选择完成后循环结果并从 Java 代码中调用 .toUpperCase() 方法?

我知道这是一个一般性的问题,在对上述两种可能性进行性能评估后,我会发表评论。但我更喜欢解决一般此类问题的良好信息来源(例如“运行排序数据库端还是在程序代码中运行排序更好?”以及针对.Net/Java等常见解决方案的此类问题和Oracle/MSSQL 服务器。

非常感谢您花时间阅读这些问题,我感谢您的任何意见并祝您有美好的一天。

问候简

4

2 回答 2

4

这取决于使用大写值的位置和方式。

如果这用于前端(我假设使用“视图”您并不是指数据库视图),那么我会toUpperCase()理想地使用用户的语言环境。

如果您使用大写值进行比较,我会使用 Oracle 函数来确保您具有一致的行为。我想到了一个条件,您将列值与字符串常量进行比较:WHERE upper(foobar) = upper('SomeValue')如果您使用的 JavatoUpperCase()可能会应用与 Oracle 不同的(取决于区域设置的)规则。

于 2013-09-03T08:28:21.243 回答
1

我相信我的代码应该是独立于数据库的。

 String upper = string.toUpperCase();

因为,它是独立于数据库的。如果我将我的数据库转移到其他数据库,我不需要更改我的代码。

简而言之,您应该考虑您的具体要求。

于 2013-09-03T08:28:08.923 回答