如何增加sqlplus列输出长度?
我有一些查询要从架构中找出某些对象的 ddl 。 我得到的结果列在查询中间被截断。
如何增加列的宽度?
我尝试过
SET SERVEROUTPUT ON SIZE 1000000;
SET LINESIZE 50000;
set pagesize 50000;
set long 50000;
但仍然得到相同的结果。
I have some queries to find out the ddl of some objects from a schema.
The result columns I am getting are truncated in the middle of the queries.
How can I increase the width of the column?
I tried with
SET SERVEROUTPUT ON SIZE 1000000;
SET LINESIZE 50000;
set pagesize 50000;
set long 50000;
But I'm still getting the same result.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
我刚刚使用了以下命令:(
来自 http://ss64.com/ora/语法-sqlplus-set.html)。
编辑:为了清楚起见,有效命令是
SET LIN 200
或SET LINESIZE 200
。这工作正常,但您必须确保控制台窗口足够宽。如果您直接从 MS Windows 命令提示符使用 SQL Plus,则控制台窗口将自动以“屏幕缓冲区大小 宽度”属性设置的任何值自动换行,无论任何 SQL Plus
LINESIZE
规范。按照@simplyharsh的建议,您还可以使用
COLUMN col_name FORMAT Ax
配置各个列以显示设置的宽度(其中x是所需的长度,以字符为单位) - 这是如果您有一两个超大列并且您只想在控制台屏幕中显示其值的摘要,则非常有用。I've just used the following command:
(from http://ss64.com/ora/syntax-sqlplus-set.html).
EDIT: For clarity, valid commands are
SET LIN 200
orSET LINESIZE 200
.This works fine, but you have to ensure your console window is wide enough. If you're using SQL Plus direct from MS Windows Command Prompt, the console window will automatically wrap the line at whatever the "Screen Buffer Size Width" property is set to, regardless of any SQL Plus
LINESIZE
specification.As suggested by @simplyharsh, you can also configure individual columns to display set widths, using
COLUMN col_name FORMAT Ax
(where x is the desired length, in characters) - this is useful if you have one or two extra large columns and you just wish to show a summary of their values in the console screen.此配置对我有用:
带有
linesize
选项的column
格式定义有助于避免在 80 个字符处截断。This configuration is working for me:
The
column
format definition with thelinesize
option helped to avoid the truncation at 80 chars.试试这个
其中 24 是您的宽度。
Try this
where 24 is you width.
在 Linux 上尝试这些:
On Linux try these:
除了按照 LordScree 的建议设置 LINESIZE 之外,您还可以指定输出到文件,以克服控制台宽度的问题。我是这样做的:
Additionally to setting the LINESIZE, as LordScree suggested, you could also specify to output to a file, to overcome the problem with the console width. Here's how I do it:
事实上,即使这样对我来说也不起作用。当我执行“select dbms_metadata.get_ddl('TABLESPACE','TABLESPACE_NAME') from Dual;”时我再次只得到前三行,但这次每行都被填充到 15,000 个字符。我能够解决这个问题:
看起来确实应该有一种更简单的方法,但我似乎找不到它。
Actually, even that didn't work for me. When I executed "select dbms_metadata.get_ddl('TABLESPACE','TABLESPACE_NAME') from dual;" I again got only the first three lines, but this time each line was padded out to 15,000 characters. I was able to work around this with:
It sure seemed like there ought to be an easier way, but I couldn't seem to find it.
我用什么:
或者我错过了什么?
What I use:
Or am I missing something?
这对我来说对 CLOB 专栏很有魅力:
This worked like a charm for me with a CLOB column:
这些建议都不适合我。我终于找到了我可以做的其他事情 -
dbms_output.put_line
。例如:轰隆隆。它打印出了我想要的所有内容 - 没有截断或类似的东西。这可以直接在
sqlplus
中工作 - 无需将其放在单独的文件或任何内容中。None of these suggestions were working for me. I finally found something else I could do -
dbms_output.put_line
. For example:Boom. It printed out everything I wanted - no truncating or anything like that. And that works straight in
sqlplus
- no need to put it in a separate file or anything.如果您使用的是 CMD,请尝试以下操作:
设置线宽100
If you are using CMD try this:
set linesize 100
在 Windows 上,您可以尝试以下操作:
On Windows you may try this: