Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 关于Oracle数据库格式列的一个简单问题_Sql_String_Oracle_Sqlplus - Fatal编程技术网

Sql 关于Oracle数据库格式列的一个简单问题

Sql 关于Oracle数据库格式列的一个简单问题,sql,string,oracle,sqlplus,Sql,String,Oracle,Sqlplus,在Oracle上,为了使用sqlplus更好地设置输出,我们这样做了 column author format a15 column editor format a15 column title format a15... 问题很简单:为3列设置列大小很容易,但是如果我们有7列或更多列?是否可以为所有列设置默认列大小?否。默认情况下,字符串列的显示长度是数据库中列的大小。因此,如果一个列被定义为varchar2(100),那么SQL*Plus会在结果集中保留100个字符。特定规则适用于数据类型

在Oracle上,为了使用sqlplus更好地设置输出,我们这样做了

column author format a15
column editor format a15
column title format a15...

问题很简单:为3列设置列大小很容易,但是如果我们有7列或更多列?是否可以为所有列设置默认列大小?

否。默认情况下,字符串列的显示长度是数据库中列的大小。因此,如果一个列被定义为
varchar2(100)
,那么SQL*Plus会在结果集中保留100个字符。特定规则适用于数据类型,如日期、CLOB或其他,但这可能不是您在这里要求的

如果您想改变这一点,需要在每列的基础上进行

发件人:

数据类型列的默认宽度是数据库中列的宽度

您可以使用COLUMN命令更改数据类型或日期的显示宽度,该命令的格式模型由字母
a
(对于字母数字)后跟一个以字符表示列宽度的数字组成

命令中,确定要格式化的列和要使用的模型


否。默认情况下,字符串列的显示长度是数据库中该列的大小。因此,如果一个列被定义为
varchar2(100)
,那么SQL*Plus会在结果集中保留100个字符。特定规则适用于数据类型,如日期、CLOB或其他,但这可能不是您在这里要求的

如果您想改变这一点,需要在每列的基础上进行

发件人:

数据类型列的默认宽度是数据库中列的宽度

您可以使用COLUMN命令更改数据类型或日期的显示宽度,该命令的格式模型由字母
a
(对于字母数字)后跟一个以字符表示列宽度的数字组成

命令中,确定要格式化的列和要使用的模型


好吧,这是可能的——对于数字来说。您有3个可用选项:

  • 列格式
    优先于
  • SET NUMFORMAT
    优先于
  • SET NUMWIDTH
例如:

SQL> set numwidth 2
SQL> select sal from emp where rownum <= 2;

SAL
---
 ##
 ##

SQL> set numformat $9990d0
SQL> select sal from emp where rownum <= 2;

     SAL
--------
 $1000,0
 $1600,0

SQL> col sal format $999g990d00
SQL> select sal from emp where rownum <= 2;

         SAL
------------
   $1.000,00
   $1.600,00

SQL>
SQL>设置numwidth 2
SQL>从emp中选择sal,其中rownum设置numformat$9990d0
SQL>从emp中选择sal,其中rownum col sal格式$999g990d00
SQL>从emp中选择sal,其中rownum

但是,对于其他数据类型来说,没有这样的运气。

嗯,对于数字来说,这是可能的。您有3个可用选项:

  • 列格式
    优先于
  • SET NUMFORMAT
    优先于
  • SET NUMWIDTH
例如:

SQL> set numwidth 2
SQL> select sal from emp where rownum <= 2;

SAL
---
 ##
 ##

SQL> set numformat $9990d0
SQL> select sal from emp where rownum <= 2;

     SAL
--------
 $1000,0
 $1600,0

SQL> col sal format $999g990d00
SQL> select sal from emp where rownum <= 2;

         SAL
------------
   $1.000,00
   $1.600,00

SQL>
SQL>设置numwidth 2
SQL>从emp中选择sal,其中rownum设置numformat$9990d0
SQL>从emp中选择sal,其中rownum col sal格式$999g990d00
SQL>从emp中选择sal,其中rownum
不过,对于其他数据类型来说,没有这样的运气