在我公司的产品中,我们从数据库中检索结果,一次检索一页。因此,所有的过滤和排序都必须在数据库上完成。其中一个问题是编码值。要使过滤和排序正常工作,需要将代码值转换为查询中特定于区域设置的标签。
我的计划是使用一个类似于下面的表: t_code_to_label (类型varchar2(10),区域设置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()是我编造的。在JDBC连接的Java端,如何设置连接对象的语言环境,以便在Oracle端通过一个简单的函数读取。理想情况下,这是Oracle真正的语言环境支持,但我找不到这样的东西。
我使用的是Oracle 10g和11g。
发布于 2011-03-14 06:05:18
您是在谈论Oracle数据库的NLS_LANGUAGE设置吗?您是否希望(从客户端)指定Oracle数据库对特定NLS_LANGUAGE的使用?
那么这可能会起作用:Set Oracle NLS_LANGUAGE from java in a webapp
如果你想要一个“全美国”的会议,你可以这样做:
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'https://stackoverflow.com/questions/5292721
复制相似问题