Oracle 设置全球化支持环境
Posted
技术标签:
【中文标题】Oracle 设置全球化支持环境【英文标题】:Oracle Setting Up a Globalization Support Environment 【发布时间】:2016-02-01 09:24:30 【问题描述】:我们希望在用户/模式级别为所有会话设置此SET NUMFORMAT 99999999999999999.00
。目前,当设置此命令时,它仅适用于该会话。我们可以在全局范围内执行此操作,以便在我们打开连接时,它可以工作 >
【问题讨论】:
这是一个客户端设置。哪个客户?如果 SQL*Plus 总是在同一台机器上运行,那么您可以通过 login.sql/glogin.sql,例如;其他客户也可能允许。但它适用于所有数字 - 最好在查询中包含格式,以便它特定且适合每个值 - 如果您想要字符串表示,请指定您希望它的样子。但仅用于显示,运行查询的应用程序应该取回实际数字,并决定如何显示它。 【参考方案1】:SET NUMFORMAT 是一个 SQL*Plus 命令。一般来说,客户端设置显示数字。
您始终可以将SQL*Plus
设置存储在login.sql
和glogin.sql
中。每当SQL*Plus
启动时,它都会在$ORACLE_HOME/sqlplus/admin
目录下查找名为glogin.sql 的文件。如果找到这样的文件,则读取它并执行包含的语句。此外,在读取 glogin.sql 之后,sql*plus 还会在 SQL*Plus
所在的目录和环境变量 SQLPATH 指向的目录中查找名为 login.sql 的文件,并读取并执行它。 login.sql 中的设置优先于 glogin.sql 中的设置。
如果您只是显示数字,并希望它以所需的格式显示,请在 单个 SQL 语句级别使用 TO_CHAR。
例如,
SQL> select to_char(123.456,'999.9') VALUE from dual
2 /
VALUE
------
123.5
底线,这是SQL*Plus
命令,而不是 Oracle SQL 或 PL/SQL 命令。这只会影响来自SQL*Plus
的数据显示方式,不会影响访问数据库的其他程序的显示方式。无论您使用什么来显示数据,都应该有类似的东西,而不是SQL*Plus
。
【讨论】:
我想做那种通用设置,然后登录,然后插入表格命令。 Insert 语句与任何格式无关。 Oracle 以可变长度存储数字。它不会以您在客户端上显示时看到的方式存储。所以插入时无需担心格式化。您只需要显示时的格式,我已经回答了。以上是关于Oracle 设置全球化支持环境的主要内容,如果未能解决你的问题,请参考以下文章
oracle数据库中都有哪些字符集,字符集之间的子集和超集关系是怎么样的?
原创SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)
全球首个支持事务一致性, 兼容DB2和Oracle的高速SQL on Hadoop引擎:Inceptor
2015最佳原创系列全球首个支持事务一致性, 兼容DB2和Oracle的高速SQL on Hadoop引擎:Inceptor
5 月全球数据库排名:PostgreSQL 有所回升;Fedora 开始支持 Google Chrome 和 Steam