【问题标题】:How to run an oracle query in linux with a table like output如何在 linux 中使用类似输出的表运行 oracle 查询
【发布时间】:2016-01-30 18:21:49
【问题描述】:

我是在 linux 中运行 sql 查询的新手,我很难处理它的输出。

所以我设法在 linux 中访问我在 oracle 中的数据库并尝试立即运行一个简单的查询:

SELECT IN_01, OUT_BD_01 FROM TRANSLATION_ROW WHERE IN_01 = 'LS3K5GB';

我希望它出现在类似表格的输出中,但我得到了这个:

任何帮助将不胜感激。顺便说一句,我正在通过 putty 访问我的 Oracle 服务器。我不知道这是否有帮助。

--忘了说我也用sqlplus。不知道会不会有影响

提前致谢。

【问题讨论】:

标签: sql linux oracle


【解决方案1】:

它显示了它的整个列。 您可以在运行查询之前使用以下内容格式化您的列:

例如:格式化我的列以仅显示 10 个字符

column IN_01 format a10 

【讨论】:

    【解决方案2】:

    在使用 SQLplus 时,您应该应用一些基本的配置技巧。一组基本参数如下所示:

    set pagesize 50000
    set linesize 135
    set long 50000
    set trimspool on
    set tab off
    

    所有这些都应该放在一个login.sql 文件中,该文件应该在你启动 sqlplus 的目录中。

    这将解决您当前的问题,但为了进一步阅读,我建议查看此页面:Configuring sqlplus。

    【讨论】:

      【解决方案3】:

      欢迎来到奇异而奇妙的甲骨文世界。

      通过 sqlplus 查看大量数据(尤其是“宽”数据)一直不太美观。早在 1990 年代,Oracle 的竞争对手 Ingres 就有一个相当不错的 isql,它在这方面做得更好,尽管它的另一面是使用 isql 假脱机到数据文件(没有标题和修剪等)稍微难一些。我认为 SQLPLus 相当原始的特性是 TOAD/SQL*Developer 等变得流行的原因。

      为了使输出更易于阅读,您需要学习 sqlplus 格式化的基础知识,尤其是 SET LINES、PAGES、TRIMSPOOL、TAB 和 COLUMN 格式化命令。

      使用 COLUMN 来控制每一列的格式。

      一种可能的选择是使用 SET MARKUP 和假脱机到一个文件,它将输出格式化为 HTML 表格,但是您需要一个 HTML 查看器/浏览器来查看结果。

      在 PuTTY 上你的选择是有限的,但如果你有 xterm 并且可以在 Linux 上调用浏览器,你可能会发现类似 shell 脚本的东西:

      #!/bin/bash
      
      sqlplus un/pw @the_file
      firefox the_output.html
      

      the_file.sql 的内容:

      SET MARKUP ON
      spool the_output.html
      SELECT * FROM user_objects;
      spool off
      quit
      

      如果您在 the_output.html 所在的 Linux 系统之间有共享并且可以将其挂载到 WIndows 上,您可以在 Linux 上使用 MARKUP 运行查询,假脱机到共享,然后单击浏览器上的刷新。

      笨重,并不是你真正想要的,但试试看你会得到什么。

      【讨论】:

      • 感谢您。我想我稍后会尝试检查一下。
      猜你喜欢
      • 1970-01-01
      • 2021-09-19
      • 2015-01-20
      • 2012-09-09
      • 2012-08-27
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多