Oracle Databaseを使用したOutSystemsでの言語ソートの設定
このドキュメントでは、Oracle Databaseを使用して、OutSystems環境で文字データの言語ソートを構成する方法について説明しています。
国によって文字のソート方法が異なります。Oracleでは、データベース管理者がデータベースの文字列のソート動作を構成および制御するためのメカニズムを提供します。Oracleの言語ソート設定の詳細については、Oracleのドキュメントをご覧ください。
OutSystemsでは、11.7.0より前のPlatform Serverバージョンの場合、すべてのOracle Databaseで以下の構成が必要です。
- NLS_LANGUAGE: AMERICAN
- NLS_TERRITORY: AMERICA
- NLS_CHARACTERSET: AL32UTF8(Unicodeのサポートあり)またはWE8MSWIN1252(Unicodeのサポートなし)
- NLS_DATE_FORMAT: DD-MON-RR
ただし、この構成によって予期しないクエリ結果が発生する可能性が若干あります。問題の1つは、日本語のようにアクセント記号が付く言語に関連しています。
たとえば、「セト」(ローマ字でSeto)という単語がデータベースに保存されている場合に、「ゼト」(ローマ字でZeto)という単語を検索すると、上記の構成によって「セト」(ローマ字でSeto)を含むレコードがクエリ結果に含まれます。このようなレコードがクエリ結果に含まれるのは、プラットフォームで使用しているOracleのデフォルトの文字列ソートアルゴリズムがBINARY_AI
であり、アクセント記号を区別しないためです。
Platform Server 11.7.0以降、OutSystemsのシステム管理者は、OutSystemsプラットフォームデータベースで、Oracle Databaseの言語ソート構成(NLS_SORT
パラメータの値)をBINARY_AI
(デフォルト値)からBINARY_CI
に変更できます。この構成を変更するには、設定をアクティブにするためにアプリケーションを再パブリッシュする必要があります。
ロギングデータベースの言語ソート構成も変更できますが、これは必須ではありません。この変更は、Service Centerのログ検索機能や、ログテーブルから情報を取得するその他のアプリケーションにのみ影響を及ぼします。
プラットフォームデータベースとロギングデータベースの言語ソートを変更する手順については、次のセクションをご覧ください。
言語ソートを構成する
プラットフォームデータベースの言語ソートを変更するには、以下の手順を実行します。
1.[Start > Programs > OutSystems > Administration Tools]にあるConfiguration Toolを起動します。
1.[Platform]タブで、[Database]セクションの[Advanced Settings]リンクをクリックします。

1.目的の言語ソートを選択します。使用可能なオプションは、以下のとおりです。
**BINARY_AI** – 照合を区別するSQL操作で、アクセントや大文字と小文字を区別しないバイナリソートを使用します。<br/>
**BINARY_CI** – 照合を区別するSQL操作で、大文字と小文字を区別しないがアクセントは区別するバイナリソートを使用します。

- [OK]を押して[Advanced Settings]ダイアログボックスを閉じた後、[Apply and Exit]を押します。
1 .環境内のすべてのモジュールを再パブリッシュします。
オプションで、ロギングデータベースの言語ソートを変更することもできます。この場合、Configuration Toolではデータベース管理者が実行する必要のあるSQLスクリプトが提供されています。これは、ロギングデータベース内のログデータの量によっては、データベースインデックスの再作成に時間がかかる場合があるためです。
ロギングデータベースでこの変更を行うには、以下の手順を実行します。
-
[Start > Programs > OutSystems > Administration Tools]にあるConfiguration Toolを起動します。
-
[Log]タブで、[Advanced Settings]リンクをクリックします。
-
目的の言語ソートを選択します。使用可能なオプションは、以下のとおりです。
BINARY_AI – 照合を区別するSQL操作で、アクセントや大文字と小文字を区別しないバイナリソートを使用します。
BINARY_CI – 照合を区別するSQL操作で、大文字と小文字を区別しないがアクセントは区別するバイナリソートを使用します。 -
[OK]を押します。
-
OutSystemsでは、データベース管理者がSQLスクリプトを実行してこの変更をロギングデータベースに適用する必要があることを示す警告が表示されます。
[Linguistic Sorting Changed]ウィンドウで、[OK]を押してSQLスクリプトファイルを保存します。 -
[Apply and Exit]をクリックします。
-
Configuration ToolによってService Centerのインストールを実行するように求められます。[Yes]をクリックしてインストールを実行します。
-
提供されたSQLスクリプトをOutSystemsロギングデータベースで実行するようにデータベース管理者に依頼します。
注記: SQLスクリプトの実行時間は、ロギングデータベースに存在するデータの量によって異なります。データベース管理者がこのスクリプトの実行を監視することを推奨します。