2016-02-01 84 views
1

我们希望在用户/架构级别为所有会话设置此SET NUMFORMAT 99999999999999999.00。目前,设置此命令时,它仅适用于该会话。我们能做到这一点全球范围内,这样,当我们过打开连接,这个工程>Oracle设置全球化支持环境

+0

这是一个客户端设置。哪个客户?如果SQL \ * Plus并且始终从同一台机器上运行,那么您可以通过login.sql/glogin.sql,例如;其他客户也可以允许。但它适用于所有数字 - 最好在查询中包含格式,以便它对每个值都是特定和适当的 - 如果您想要字符串表示形式,请指定您想要的样式。但仅用于显示,运行查询的应用程序应该返回实际的数字,并且应该决定如何显示它。 –

回答

0

SET NUMFORMAT的SQL * Plus命令。一般来说,这是一个客户端设置为显示的数量。

您可以随时将SQL*Plus设置存储在login.sqlglogin.sql中。每当SQL*Plus启动时,它会在目录$ORACLE_HOME/sqlplus/admin下查找名为glogin.sql的文件。如果找到这样的文件,它将被读取并执行包含的语句。此外,在读取glogin.sql之后,sql * plus还会在SQL*Plus所在的目录中以及环境变量SQLPATH所指向的目录中查找名为login.sql的文件并读取并执行它。来自login.sql的设置优先于来自glogin.sql的设置。

如果你只是显示号码,并希望它显示在所需的格式,然后用TO_CHAR单个SQL语句级

例如,

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

+0

然后对基于Oracle的命令有任何建议? – user2354566

+0

我想做那样的通用设置,然后登录,然后插入到表命令。 – user2354566

+0

插入语句与任何格式无关。 Oracle以可变长度存储数字。它不按照您在客户端上显示的方式进行存储。所以在插入时无需担心格式化。你只需要显示时的格式,我已经回答了。 –