0

ハイ、

列に cAmeLCaSe の Varchar-Database 値があり、ビューで常に大文字で表示したいとします。

(たとえば) Oracle の UPPER 関数を使用してこれらのエントリを選択するか、結果をループして、選択後に Java コード内から .​​toUpperCase() メソッドを呼び出す方がよいでしょうか?

私はそれが少し一般的な質問であることを知っており、上記の 2 つの可能性についてパフォーマンスを低下させた後、簡単にコメントします。しかし、私は、このような一般的な質問に対処する優れた情報源を求めています (たとえば、「データベース側またはプログラムコードでソートを実行する方が良いですか?」など)。 Oracle/MSSQL サーバー。

この質問をお読みいただきありがとうございます。ご意見をお寄せいただきありがとうございます。

よろしくヤン

4

2 に答える 2

4

大文字の値がどこでどのように使用されるかによって異なります。

これがフロントエンドでのみ使用される場合 (「view」はデータベース ビューを意味するものではないと思います)、toUpperCase()理想的にはユーザーのロケールを使用します。

比較に大文字を使用している場合は、Oracle 関数を使用して、動作が一貫していることを確認します。たとえば、列の値を文字列定数と比較する条件を考えていますWHERE upper(foobar) = upper('SomeValue')。Javaを使用した場合toUpperCase()、Oracleが使用するルールとは異なる(ロケールに依存する)ルールを適用する可能性があります。

于 2013-09-03T08:28:21.243 に答える
1

私のコードは常にデータベースに依存しないようにすべきだと思います。

 String upper = string.toUpperCase();

データベースに依存しないため、データベースを別のデータベースに移行しても、コードを変更する必要はありません。

一言で言えば、特定の要件を考慮する必要があります。

于 2013-09-03T08:28:08.923 に答える