【问题标题】:SQLPLUS TRIM and COLUMN formattingSQLPLUS TRIM 和 COLUMN 格式化
【发布时间】:2012-05-13 22:59:33
【问题描述】:

我刚刚执行了一个 PL/SQL 过程并得到了输出:

名字姓氏角色引用

我想要做的是使用修剪和列格式输出如下信息,以便名字和姓氏出现在一行上,然后角色和引号出现在下一行,用 | 分隔

名字姓氏

|角色 |引用 |

我不知道该怎么做,如果有任何帮助,我们将不胜感激

【问题讨论】:

  • FirstNameLastName 在一行,然后 RoleQuote 在另一行?你能举一个使用这种格式的真实例子吗?
  • 是 FirstName 和 LastName 在一行上,然后在此 Role 和 Quote 下方,由 | 分隔
  • SQL 自然不能以这种方式工作。我的建议是将所有四个字段放在一行中,然后在您的应用程序中处理格式。
  • 这是我目前正在进行的项目的要求,有没有办法做到这一点?如果不是,我如何缩短一行上的间隙,因为它们当前被几个空格隔开,并添加一个 |在每个字段的末尾
  • @Dems:可以连接字段并添加回车吗?

标签: sql oracle plsql oracle10g sqlplus


【解决方案1】:

如果这是来自 PL/SQL 过程的输出——我假设这意味着它是通过调用 DBMS_OUTPUT 来完成的——那么 SQLPlus 列格式化命令将对其没有影响。您需要修改过程以按照您想要的方式进行输出。

如果这是 SELECT 语句的输出,那么我相信您可以使用 column 语句上的 fold_afterfold_before 选项来做您想做的事情。

【讨论】:

  • 是的,它确实包含 dbms_output,我将如何修改程序来格式化它?
  • 不看代码就不能确定。但由于您想从一行输出更改为两行,您很可能需要将一个对DBMS_OUTPUT.PUT_LINE 的调用替换为两个单独的调用。
  • 谢谢,没想到!但是,如果可能的话,使用列格式和修剪会更理想?
  • dbms_output.put_line( row.firstName || ' ' || row.lastName || ' ' || row.roleName || ' ' || row.quotechar);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
相关资源
最近更新 更多