0

Oracle 10gで大文字と小文字を区別しない検索を設定し、特定のテーブルでのすべての着信選択を変換する方法はありますか?

私はこのような選択をしています:

SELECT city.city_name as city,
    city.city_zip as zip,
    city.city_name || ' - ' || county.county_name as county
FROM T_ADDRESSFILLCITY city
JOIN T_ADDRESSFILLCOUNTY county ON county.countyid = city.countyid
WHERE LOWER(TRANSLATE(city.city_name, 'úüűůéěäáôöőóťčížďňšŕýľřĺąćęłńóśźż', 'uuuueeaaooootcizdnsrylrlacelnoszz')) LIKE LOWER(TRANSLATE({PARAM}, 'úüűůéěäáôöőóťčížďňšŕýľřĺąćęłńóśźż', 'uuuueeaaooootcizdnsrylrlacelnoszz'))

でもこれに変えたい

SELECT city.city_name as city,
    city.city_zip as zip,
    city.city_name || ' - ' || county.county_name as county
FROM T_ADDRESSFILLCITY city
JOIN T_ADDRESSFILLCOUNTY county ON county.countyid = city.countyid
WHERE city.city_name LIKE {PARAM}

また、データベースメカニズム(collat​​e?、trigger?)を使用して、大文字と小文字を無視し、すべての選択に対してデフォルトで変換します。

ただし、これはデータベース全体ではなく、特定のテーブルにのみ適用する必要があります。

何も見つかりませんでした。ヒントをよろしくお願いします。

4

1 に答える 1

1

次のように設定してください。

 alter session set nls_comp='LINGUISTIC';
 alter session set nls_sort='BINARY_AI';

次に、2 番目のクエリを実行します。これにより、LIKE でアクセントの大文字と小文字を区別しない検索が提供されます。参照: http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch5lingsort.htm#CIHJBFAD

代わりに使用することconvertです。例えば:

where upper(convert(name, 'US7ASCII')) like upper(convert('%e%', 'US7ASCII'));
于 2013-01-16T13:40:35.953 に答える