oracle - SQLPlus varchar2 输出空格

标签 oracle oracle11g terminal sqlplus

当我像下面这样查询表时,“NAME”列的输出太长。我最近将数据类型更改为 VARCHAR2(150) 而不是 VARCHAR(150) 以不保存空格。然而,输出似乎无论如何都包含(一些?)空格。谁能澄清这里发生了什么事吗?我是否在这里查看空格,或者问题只是我的终端/控制台,还是 SQLPLUS 本身与它有关?使用 Windows 终端。

SQL> SELECT * FROM SYS.O1_Orders;

        ID
----------
NAME
--------------------------------------------------------------------------------

  QUANTITY      PRICE
---------- ----------
         1
Cakes
        25        200

最佳答案

这纯粹是 SQL*Plus 显示问题。 (目前) VARCHARVARCHAR2 数据类型之间没有区别 - 也不会用空格填充您保存的数据。只有 CHAR 列可以做到这一点。

在 SQL*Plus 中,您可以控制 name 列的显示宽度

SQL> column name format a30;

例如,将告诉 SQL*Plus 使用 30 列来显示 name 列中的数据。您可以根据数据的实际长度、想要在单行中容纳多少数据等来向上或向下调整该值。您必须将其与 SQL 语句一起放入脚本中,否则您将在发出语句之前需要在每个 session 中复制它,否则您需要将其添加到 login/glogin.sql 文件中。

如果您尝试生成固定宽度的文本报告,SQL*Plus 是一个可爱的工具。但是,如果您只是以交互方式运行查询,那么它不是最用户友好的解决方案 - 调整文本列的宽度、处理比行长的输出等,很快就会过时。如果您正在进行交互式开发,像 SQL Developer 这样具有适当 GUI 的工具会更加友好。

关于oracle - SQLPlus varchar2 输出空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25619463/

相关文章:

unix - 如何从终端的tar文件中提取目录内的文件?

Oracle 11g - AWR 报告分析帮助

java - 为 JDBC 连接设置网络超时

java - 使用 EclipseLink JPA 插入 Null 结构

c# - ORA-22288 : file or LOB operation FILEOPEN failed The system cannot find the path specified

sql - Oracle 内联 View 中引用列的问题

python dataframe 做类似 oracle connect_by 的事情吗?

sql - 更改单个查询的 NLS_SORT

linux - 搜索并替换第一次出现的字符串

c++ - 在 Ubuntu 终端中编译时 OpenGL 引用的问题