例如,执行用于显示各种列的长语句时的问题之一
select g.guestid,g.forename,g.surname,b.bookingid,b.arrivedate,b.departdate,br.floorno,br.roomno from...
Linux终端上的列大小似乎是一个问题.例如,Forename VarChar(80)列在执行上述语句时会占用屏幕的大部分宽度,并且一种方法可以通过以下方式将其删除:
SET COLUMN FORENAME FORMAT A10
例如.但是,许多专栏需要反复进行,这很长.即
SET COLUMN FORENAME FORMAT A10 SET COLUMN SURNAME FORMAT A10
等等…
有没有办法说根据文字宽度调整列宽,以便每个人都很好地适应.而不是这样..
我更喜欢一些不涉及使用FUNCTIONS的解决方案.
不,没有简单的方法可以使sql * Plus“自动调整”列宽到文本宽度.
原文链接:https://www.f2er.com/oracle/205174.html但是,脚本编写可以让您的生活更轻松.
首先,减少打字.不要做SET COLUMN FORENAME FORMAT A10,做一些像@c forename 10这样的事情.
17:33:31 SYSTEM@dwal> cl col columns cleared 17:33:33 SYSTEM@dwal> select * from dual; D - X Elapsed: 00:00:00.01 17:33:37 SYSTEM@dwal> @c dummy 10 17:33:43 SYSTEM@dwal> select * from dual; DUMMY ---------- X Elapsed: 00:00:00.01 17:33:45 SYSTEM@dwal> get s:\c.sql 1* col &1. for a&2. 17:33:50 SYSTEM@dwal>
或者像这样快速隐藏宽列:
17:48:44 SYSTEM@dwal> select owner,table_name from all_tables where rownum = 1; OWNER TABLE_NAME ------------------------------ ------------------------------ SYS CON$ Elapsed: 00:00:00.24 17:48:49 SYSTEM@dwal> @np owner 17:48:53 SYSTEM@dwal> select owner,table_name from all_tables where rownum = 1; TABLE_NAME ------------------------------ CON$ Elapsed: 00:00:00.26 17:48:56 SYSTEM@dwal> get s:\np 1 col &1 noprint 2* @undef
这些只是我每天使用的许多脚本中的两个.这种方法需要花费时间和一些个人关注定制,以适应它并使其有效,但减少你显着按键的数量.
第二,有glogin.sql.它是一个脚本,每次连接到某个地方时都会执行.我假设您知道一个“长”列的列表,使您的行换行.
只需在那里列出它们,然后列出它们
SET COLUMN FORENAME FORMAT A10 SET COLUMN SURNAME FORMAT A10
每次(重新)连接时都会设置列参数.