sqlplus格式化宽度,指定
Sqlplus formatting width, as specified
如何执行以下 Oracle/pl-sql 代码来并排显示两列?
SELECT table_name, user_cons_columns.column_name
FROM user_cons_columns;
目前,这是我的输出格式:
这是我希望看到的格式:
尝试过的解决方案:
设置多头 1000
设置线宽 200
其中 long 和 linesize 已从 20 更改为 2000,但未成功。我怀疑它只是不正确的 SQL 代码...但不确定。提前致谢!
Select 仅来自 column_name 字段的前 N (20) 个字符。
SELECT SUBSTR(column_name, 1, 20) column_name, table_name
FROM user_cons_columns;
这与 SQL 代码无关(您不应更改它,例如通过截断 SQL 查询中的字符串,只是为了解决格式问题)。
问题是 table 中的列被声明为具有特定宽度,例如 VARCHAR2(1000),这就是 SQL Plus 默认保留的内容。您可以使用 SQL Plus 命令在 SQL Plus 中更改它。在这种情况下,COLUMN 命令。
SQL> column column_name format a30
SQL> column table_name format a30
这些是 SQL Plus 命令,所以不要以分号 ( ; ) 结尾
如果您希望每列 40 个字符,请将 a30 更改为 a40。等等
目前尚不清楚为什么,如果在输出中您希望 table 名称首先出现,那么在查询中您首先具有列名。你应该能够自己解决这个问题。此外,如果您 select 来自一个 table,则无需在列名称前加上 table 名称。但是,如果这样做,请保持一致 - 对两列都这样做。如果这样做,最好在 FROM 子句中给 table 一个别名,并在 SELECT 中使用别名。这些都与你原来的问题无关。
如何执行以下 Oracle/pl-sql 代码来并排显示两列?
SELECT table_name, user_cons_columns.column_name
FROM user_cons_columns;
目前,这是我的输出格式:
这是我希望看到的格式:
尝试过的解决方案:
设置多头 1000
设置线宽 200
其中 long 和 linesize 已从 20 更改为 2000,但未成功。我怀疑它只是不正确的 SQL 代码...但不确定。提前致谢!
Select 仅来自 column_name 字段的前 N (20) 个字符。
SELECT SUBSTR(column_name, 1, 20) column_name, table_name
FROM user_cons_columns;
这与 SQL 代码无关(您不应更改它,例如通过截断 SQL 查询中的字符串,只是为了解决格式问题)。
问题是 table 中的列被声明为具有特定宽度,例如 VARCHAR2(1000),这就是 SQL Plus 默认保留的内容。您可以使用 SQL Plus 命令在 SQL Plus 中更改它。在这种情况下,COLUMN 命令。
SQL> column column_name format a30
SQL> column table_name format a30
这些是 SQL Plus 命令,所以不要以分号 ( ; ) 结尾
如果您希望每列 40 个字符,请将 a30 更改为 a40。等等
目前尚不清楚为什么,如果在输出中您希望 table 名称首先出现,那么在查询中您首先具有列名。你应该能够自己解决这个问题。此外,如果您 select 来自一个 table,则无需在列名称前加上 table 名称。但是,如果这样做,请保持一致 - 对两列都这样做。如果这样做,最好在 FROM 子句中给 table 一个别名,并在 SELECT 中使用别名。这些都与你原来的问题无关。