前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sqlplus答疑解惑

sqlplus答疑解惑

作者头像
bisal
发布2022-10-04 19:38:10
7460
发布2022-10-04 19:38:10
举报

一位好兄弟前两天说某个老系统只能通过服务器上的sqlplus访问,所以提了几个和sqlplus相关的问题。官方或者第三方的图形化客户端,能简化我们的操作,然而不是所有的场景都可以使用。

问题1

中文还是什么的,显示问号,好像有数字类型的也显示问号,number(19,4)这种,好像显示5.????

一般都是数据库字符集和操作系统字符集不同,导致显示不同的问题,可以登录数据库,看下当前的语言字符集,

代码语言:javascript
复制
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

然后可以设置环境变量NLS_LANG,保证一致,

代码语言:javascript
复制
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

同样地,有些客户端,例如SecurCRT,可以设置会话的字符集,应该是相同道理。PLSQL Developer碰到这种问题,同样能解决,可以参考《PLSQL Developer中文乱码问题》。

问题2

查询结果导出excel文件,该怎么搞?

可以使用spool,如下所示,"spool+待存储的文件名"相当于开始,"spool off"之前的所有SQL和输出的结果集,都会写入到这个文件中,

代码语言:javascript
复制
spool test.csv
SQL...
spool off

还可以对输出进行格式化,可以参考《spool导出格式的问题》,通过sqlplus的显示控制,优化结果集展示,

代码语言:javascript
复制
set colsep' '      --行的标题列的分隔符
set linesize(line) --设置sqlplus输出的最大行宽 
set pagesize       --设置页面的最大行数 缺省为24,为了避免分页,可设定为0
set serveroutput on|off
set echo on        --显示文件中的每条命令及其执行结果,缺省为on 
set echo off       --不显示文件中的命令,只显示其执行结果
set term on        --查询结果既显示于假脱机文件中(spool指定输出的文件),又在SQLPLUS中显示
set term off       --查询结果仅仅显示于假脱机文件中(spool指定输出的文件)
set heading off    --让结果行的标题不显示,缺省为on 
set heading on     --让结果行的标题显示
set trimout on    --去除标准输出每行的拖尾空格,缺省为off 
set trimspool on   --去除重定向(spool)输出每行的拖尾空格,缺省为off 
set timing off     --显示每条sql命令的耗时,缺省为off 
set verify off     --是否显示替代变量被替代前后的语句

问题3

查询出来的东西,没几列,长度不宽,但是换行很严重,基本没法看,怎么能让输出格式化一下?

举个例子,dba_tables视图中owner定义为varchar2(128),table_name定义为varchar2(128),

8ea3377132a52c604d94bf66eb59da5d.png
8ea3377132a52c604d94bf66eb59da5d.png

如果直接写owner和table_name,就像这种,折行显示了,

eef6cc16d09660c8427fe5813c2d708b.png
eef6cc16d09660c8427fe5813c2d708b.png

此时可通过col设置owner列宽度为15,设置table_name列宽度为35,显示就正常了,

0604cd5c48bba9391a3018170f337b65.png
0604cd5c48bba9391a3018170f337b65.png

官方或者第三方的图形化客户端软件,从操作上,确实更简单,但是有时候,受限于客观条件,不一定能用,而且图形化软件最明显的问题,就是屏蔽了很多操作的细节,如果只是"用",其实是够了,但如果需要更深入的了解数据库,命令行的一些操作还是可以了解掌握的,而且如果用熟了,可能会相对与图形客户端更直接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档