Oracle 解决显示凌乱串行问题及column、pagesize、linesize的设定

本文主要是介绍Oracle 解决显示凌乱串行问题及column、pagesize、linesize的设定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在查询时经常出现的问题就是,查询的显示结果格式凌乱。

这个主要因为行,页,字段宽度设置不够显示而错位

下面是经常出现的效果:

格式不对

解决问题方法:

SQL> set linesize 1000

SQL> set pagesize 100

问题基本得以解决,下面详细说一下命令及参数意义

使用linesize命令
设置一行显示的字符数量,默认情况下显示80个字符
set linesize n(有效范围是1-32767)
SQL> set linesize 1000
SQL>r
若还是没显示完全进一步设置pagesize

使用pagesize命令
使用此命令,可以设置每一页的大小,从而控制每一页显示的数据量
set pagesize n(n最大值为50000,默认值为14,到了14行会把标题再次打出,下面跟数据)
SQL> set pagesize 100
SQL>r

除了上述还可以通过COL命令设置字段宽度,因为有些时候一个字段会空留出很多空字符

如col file_name for a50;
就是指file_name这个字段会占据50列,如果实际的值超过50列,就只能换行了
for 其实是format的缩写,示例如下
Sql>select empno,ename,job from emp; 
   EMPNO ENAME    JOB       
   ----------  ----------    ----------------- 
   7369      SMITH    CLERK    
   7499      ALLEN    SALESMAN 
   7521      WARD    SALESMAN 
Sql> col ename format a40

Sql> r  

   EMPNO ENAME                                   JOB 
   ---------- ---------------------------------------- ---------

   7369     SMITH                                      CLERK 
   7499     ALLEN                                      SALESMAN 
   7521     WARD                                      SALESMAN 

常用命令:

set line 200

set pagesize 10000

set heading off

col EMPLOYEE_ID FOR 9999

col FIRST_NAME FOR A15

col LAST_NAME FOR A15

col EMAIL FOR A8

col PHONE_NUMBER FOR A20

col HIRE_DATE FOR A15

col JOB_ID FOR A15

col SALARY FOR 9999999.99

col COMMISSION_PCT FOR 9999.99

col DEPARTMENT_ID FOR 9999

set feedback off

spool D:/app/data.txt

select * from employees;

spool off

COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
www.2cto.com
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]

set命令详解

SQL>set colsep '|'; //输出分隔符
eg、
SQL> set colsep '|';
SQL> select * from dept;

    DEPTNO|DNAME         |LOC
———-|————–|————-
        10|ACCOUNTING    |NEW YORK
        20|RESEARCH      |DALLAS
        30|SALES         |CHICAGO
        40|OPERATIONS    |BOSTON

SQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为on
SQL>set echo on; //设置运行命令是否显示语句
eg、
SQL> set echo on;
SQL> start d:/log.sql;
SQL> select * from dept
  2  /

    DEPTNO|DNAME         |LOC
———-|————–|————-
        10|ACCOUNTING    |NEW YORK
        20|RESEARCH      |DALLAS
        30|SALES         |CHICAGO
        40|OPERATIONS    |BOSTON

SQL>set feedback on; //设置显示“已选择XX行”
SQL>set feedback off; //回显本次sql命令处理的记录条数,缺省为on
SQL>set heading on; //输出字段标题,缺省为on
SQL>set pagesize 0;  //输出每页行数,缺省为24,为了避免分页,可设定为0。
SQL>set linesize 80; //输出一行字符个数,缺省为80
SQL>set numwidth 12; //输出number类型长度,缺省为10
SQL>set termout off; //显示脚本中的命令的执行结果,缺省为on
SQL>set trimout on; //去除标准输出每行的拖尾空格,缺省为off
SQL>set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off
SQL>set serveroutput on; //设置允许显示输出类似dbms_output
SQL>set timing on; //设置显示“已用时间:XXXX”
SQL>set autotrace on; //设置允许对执行的sql进行分析
SQL>set verify off; //可以关闭和打开提示确认信息old 1和new 1的显示.
eg、
SQL> SET VERIFY ON;
SQL> SELECT empno, ename, sal, deptno FROM emp WHERE empno = &employee_num;
输入 employee_num 的值:  7369
原值 1: SELECT empno, ename, sal, deptno FROM emp WHERE empno = &employ
新值 1: SELECT empno, ename, sal, deptno FROM emp WHERE empno = 7369

 DEPTNO|DNAME         |LOC
---———-|————–|————-
        7369|SMITH     |      8888|        20

SQL> show arraysize
SQL> set arraysize 20
它表示从Oracle服务器端一次只传递15行记录到客户端(SQLPLUS),SQLPLUS中arraysize默认为15。

SQL> show long //设置显示long,lob等型字段的长度,默认为80
SQL> set long 80 

SQL> show PAUSE //设置滚屏是否自动
SQL> set PAUSE  {OFF | ON | text}

这篇关于Oracle 解决显示凌乱串行问题及column、pagesize、linesize的设定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815599

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www