You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Oracle默认国家/国籍视图:用于APEX应用下拉列表

Oracle 国家/国籍信息视图及APEX下拉列表配置建议

Oracle没有默认开放给普通应用用户的系统视图包含完整的国家名称/国籍信息,但有几个内置全球化相关对象可利用,同时也有更灵活的自定义方案,以下是具体建议:

一、利用Oracle内置全球化对象

1. V$NLS_VALID_VALUES 视图

这个系统视图包含Oracle支持的所有全球化参数值,筛选PARAMETER = 'TERRITORY'即可获取国家/地区信息,包含名称、缩写等字段。

  • 示例查询:
SELECT VALUE AS country_name, ABBREVIATION AS country_code
FROM V$NLS_VALID_VALUES
WHERE PARAMETER = 'TERRITORY'
ORDER BY VALUE;
  • 授权方式:需要DBA给应用Schema授权访问权限:
GRANT SELECT ON V$NLS_VALID_VALUES TO your_app_schema;

注意:该视图的国家名称会随数据库NLS设置变化,中文环境返回中文名称,英文环境返回英文名称。

2. SYS.COUNTRIES 表(部分Oracle版本可用)

部分Oracle版本中存在SYS.COUNTRIES表,包含ISO 3166标准的国家代码、名称等信息,但默认普通用户无访问权限。

  • 授权后可创建自定义视图供应用使用:
-- DBA执行授权
GRANT SELECT ON SYS.COUNTRIES TO your_app_schema;

-- 应用Schema创建视图
CREATE OR REPLACE VIEW app_countries AS
SELECT country_code, country_name
FROM SYS.COUNTRIES
ORDER BY country_name;

二、自定义国家列表方案(更推荐)

如果内置对象信息不全或不符合业务需求(比如需要特定语言名称、国籍简称等额外字段),建议自行创建专用表:

  • 创建表语句:
CREATE TABLE app_countries (
    country_id NUMBER PRIMARY KEY,
    country_code VARCHAR2(2) NOT NULL, -- ISO 3166两位代码
    country_name VARCHAR2(100) NOT NULL, -- 中文名称
    nationality VARCHAR2(50) NOT NULL -- 国籍名称,如"中国籍"
);

-- 插入数据示例
INSERT INTO app_countries VALUES (1, 'CN', '中国', '中国籍');
INSERT INTO app_countries VALUES (2, 'US', '美国', '美国籍');
-- 可批量插入完整国家数据
  • 优势:完全可控,可根据业务需求扩展字段(如拼音排序码、地区分组等),适配APEX下拉列表的各种场景。

三、APEX下拉列表配置注意事项

  • 无论是使用内置视图还是自定义表,在APEX中配置下拉列表时,直接选择对应数据源(视图/表),设置显示列为国家名称,返回列为国家代码即可。
  • 如果需要多语言支持,可结合APEX翻译功能,或在自定义表中添加多语言字段。

内容的提问来源于stack exchange,提问作者Amol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:22:34