Dan*_* Z. 3 oracle locale database-connection jdbc
在我公司的产品中,我们一次从数据库中检索一个页面的结果.因此,必须对数据库进行所有过滤和排序.其中一个问题是编码值.要使筛选和排序正常工作,需要将代码值转换为查询中的区域设置特定标签.
我的计划是使用类似于以下的表:t_code_to_label(类型varchar2(10),locale varchar2(10),代码varchar2(10),标签varchar2(50))前三列是主(唯一)键.
使用此表时,您会看到类似这样的内容
select ent.name, ent.ent_type, entlabel.label as ent_type_label
from t_entitlements ent
join t_code_to_label entlabel on entlabel.type='entlabel' and entlabel.locale=currentLocale() and entlabel.code=ent.ent_type
问题是currentLocale()是我编写的东西.我怎样才能在Java连接的Java端做一些事情来设置我在一个简单的函数中可以在Oracle端读取的Connection对象的语言环境.理想情况下,这是Oracle真正的语言环境支持,但我找不到这样的东西.
我使用的是Oracle 10g和11g.
您是在谈论NLS_LANGUAGEOracle数据库的设置吗?您(来自客户端)是否愿意指定NLS_LANGUAGEOracle数据库的特定用途?
那么也许这样可行:在webapp中从java设置Oracle NLS_LANGUAGE
如果你想要一个"全美国"的会议,你可以这样做:
ALTER SESSION SET NLS_LANGUAGE= 'AMERICAN' NLS_TERRITORY= 'AMERICA'
NLS_CURRENCY= '$' NLS_ISO_CURRENCY= 'AMERICA'
NLS_NUMERIC_CHARACTERS= '.,' NLS_CALENDAR= 'GREGORIAN'
NLS_DATE_FORMAT= 'DD-MON-RR' NLS_DATE_LANGUAGE= 'AMERICAN'
NLS_SORT= 'BINARY'
Run Code Online (Sandbox Code Playgroud)