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}
,並有一個數據庫機制(整理?觸發器?)做忽略大小寫併爲所有選擇默認翻譯。
但是,這應該只適用於特定的表格,而不是整個數據庫。我找不到任何東西。提前感謝您的提示。
我能找到這個和它的作品完美,謝謝你,而是因爲我不知道怎麼ALTER SESSION作品我沒有使用它。我認爲它也會影響在其他表上執行的所有其他選擇,這是不好的。我需要這樣的東西,但它只適用於特定的表格。此外,我從應用程序調用此選擇,並從連接池中獲得連接,所以我真的不知道會改變會話的效果。 –
@ sando.lakatos unfortunatley你必須使用「喜歡」操作的會話設置,因爲NLSSORT不會使用它。您可以從池中獲取連接,設置參數,運行查詢,然後再次更改它們以防止任何副作用影響後續SQL。但是一個無辜的人是將該列+字符串轉換爲ascii。即嘗試'在哪裏上(convert(name,'US7ASCII'))like upper(convert('%e%','US7ASCII'));' – DazzaL
我認爲可以在表上設置這樣的行爲,但不要猜測。然後,我會嘗試使用改變會話,但轉換似乎不適合我。謝謝你的答案。 –