SQLPLUS中的set小结

本文介绍了在SQL环境中使用SET命令来调整输出格式的方法,包括显示命令、反馈信息、列分隔符等,通过这些设置可以有效提升SQL查询结果的可读性和查询体验。
部署运行你感兴趣的模型镜像

在写脚本的时候,往往需要对输出的格式进行规范,我们常常用set语句在设置一些需要的格式规范。下面,列举了几个常用的set ,和他们的应用。

SQL> set echo on—————————————————设置运行命令是是否显示语句

SQL> set feedback on———————————————-设置显示“已选择XX行”

SQL> set colsep | —————————————————设置列与列之间的分割符号

SQL> set pagesize 10———————————————–设置每一页的行数

SQL> SET SERVEROUTPUT ON——————————-设置允许显示输出类似dbms_output.putline

SQL> set heading on————————————————设置显示列名

SQL> set timing on————————————————–设置显示“已用时间:XXXX”

SQL> set time on—————————————————–设置显示当前时间

SQL> set autotrace on———————————————–设置允许对执行的sql进行分析

00:38:28 SQL> set echo on

00:38:37 SQL> @E:echo.sql

00:38:41 SQL> select status from v$datafile where rownum<6;

STATUS

-------

SYSTEM

ONLINE

ONLINE

ONLINE

ONLINE

已选择5行。

已用时间: 00: 00: 01.08

00:38:43 SQL> set echo off

00:38:58 SQL> @E:echo.sql

STATUS

——-

SYSTEM

ONLINE

ONLINE

ONLINE

ONLINE

已选择5行。

已用时间: 00: 00: 01.09

00:39:08 SQL>

SQL> set feedback on
SQL> set colsep |SQL> set pagesize 10
SQL> set serveroutput onSQL> set heading on
SQL> set timing on
SQL> set time on00:54:11
SQL> SELECT FILE#, STATUS, ENABLED FROM V$DATAFILE;

FILE#|STATUS |ENABLED———-|——-|———-
1|SYSTEM |READ WRITE
2|ONLINE |READ WRITE
3|ONLINE |READ WRITE
4|ONLINE |READ WRITE
5|ONLINE |READ WRITE
6|ONLINE |READ WRITE
7|ONLINE |READ WRITE

FILE#|STATUS |ENABLED———-|——-|———-
9|ONLINE |READ WRITE
10|ONLINE |READ WRITE
11|ONLINE |READ WRITE
12|ONLINE |READ WRITE11 rows selected.

Elapsed: 00:00:01.0700:54:34 

SQL> DECLARE

00:55:00 2 BEGIN

00:55:00 3 DBMS_OUTPUT.PUT_LINE(’===This is dbms_output.put_line!===’);

00:55:00 4 END;

00:55:02 5 /
===This is dbms_output.put_line!===

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.0200:55:05 SQL>

SQL> set autotrace on
SQL> SELECT E.LAST_NAME, D.DEPARTMENT_NAME, D.LOCATION_ID
2 FROM HR.EMPLOYEES E
3 JOIN HR.DEPARTMENTS D
4 USING (DEPARTMENT_ID);

LAST_NAME DEPARTMENT_NAME LOCATION_ID
————————- —————————— ———–
King Executive 1700
Kochhar Executive 1700
De Haan Executive 1700
Hunold IT 1400
Ernst IT 1400……

106 rows selected.

Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=106 Bytes=318
0)

1 0 HASH JOIN (Cost=5 Card=106 Bytes=3180)
2 1 TABLE ACCESS (FULL) OF ‘DEPARTMENTS’ (Cost=2 Card=27 Byt
es=513)

3 1 TABLE ACCESS (FULL) OF ‘EMPLOYEES’ (Cost=2 Card=107 Byte
s=1177)

Statistics
———————————————————-
7 recursive calls
0 db block gets
23 consistent gets
12 physical reads
0 redo size
2801 bytes sent via SQL*Net to client
580 bytes received via SQL*Net from client
9 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
106 rows processed

SQL>

 

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

<think>好的,用户想了解SQL*Plus中'set'命令的用法和选项。首先,我需要回忆一下SQL*Plus的基本知识,特别是关于set命令的部分。用户可能在使用SQL*Plus时遇到了配置问题,或者想优化输出格式,所以需要详细解释set命令的常见选项。 首先,我应该整理set命令的基本作用,比如设置环境参数、控制输出格式、调整显示选项等。常见的选项比如SET PAGESIZE、LINESIZE、FEEDBACK这些是用户经常用到的,需要详细说明每个选项的功能和示例值。 然后,用户可能有特定的需求,比如导出数据时去掉页眉和分页,这时候需要提到SET HEADING OFF和PAGESIZE 0的组合使用。同时,错误处理相关的选项,比如ERRORLOGGING,可能对调试有帮助,这也应该包含进去。 接下来,我需要确保引用相关的参考资料。根据用户提供的引用,引用5提到了SQL*PLUS命令大全,可能面包含了set命令的详细内容,所以应该在适当的地方标注引用。例如,在介绍基本语法时引用[^5]。 用户的问题可能还涉及如何永久保存这些设置,这时候需要提到login.sql文件,这样用户可以在每次启动时自动应用配置。此外,示例部分能帮助用户更好地理解如何使用这些命令,比如设置时间显示格式或调整行宽。 最后,生成的相关问题需要覆盖常见的使用场景,比如如何永久保存设置、关闭分页、处理错误日志等,这样用户可以进一步探索或解决具体问题。同时,确保引用正确,每个引用只在相关的地方出现,避免过度引用。 检查一下是否有遗漏的重要选项,比如AUTOCOMMIT、TIMING等,这些对用户来说也很实用。另外,注意格式要求,行内数学表达式不需要,但独立公式这也不涉及,所以主要按照列表和代码块来组织内容。确保所有步骤符合用户提供的系统级指令,尤其是使用中文回答和正确引用格式。</think>### SQL*Plus中`SET`命令的用法与选项详解 `SET`命令是SQL*Plus中用于配置环境参数的核心工具,可控制输出格式、执行行为及会话属性。以下是其常见用法和选项分类说明: --- #### **1. 基本语法** ```sql SET <选项名称> <值>; ``` - 若需查看当前所有设置,使用`SHOW ALL`。 --- #### **2. 常用选项分类** **2.1 输出格式控制** - `SET PAGESIZE n` 设置每页显示的行数,默认值通常为14。例如:`SET PAGESIZE 30`。 - `SET LINESIZE n` 定义每行的字符宽度,适用于对齐表格输出。例如:`SET LINESIZE 120`。 - `SET HEADING ON/OFF` 控制是否显示列标题(默认`ON`)。导出数据时可设为`OFF`以去除标题[^5]。 - `SET FEEDBACK ON/OFF` 控制是否显示SQL语句影响的行数(如“3 rows selected”)[^5]。 **2.2 执行与错误处理** - `SET AUTOCOMMIT ON/OFF` 控制是否自动提交DML语句(默认`OFF`)。设为`ON`时,每次操作自动提交事务。 - `SET ERRORLOGGING ON/OFF` 启用错误日志记录到指定表(需预先配置)[^5]。 **2.3 显示与交互** - `SET TIMING ON/OFF` 显示SQL语句执行时间(默认`OFF`)。例如:`SET TIMING ON`。 - `SET ECHO ON/OFF` 控制脚本执行时是否显示原始命令(调试时常用)[^5]。 --- #### **3. 高级配置示例** - **导出数据时去除分页**: ```sql SET PAGESIZE 0 SET HEADING OFF ``` - **自定义时间格式**: ```sql SET TIME ON ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; ``` --- #### **4. 永久性配置** 通过`login.sql`文件保存常用设置,该文件需存放在SQL*Plus启动目录中。例如: ```sql -- login.sql示例 SET PAGESIZE 50 SET LINESIZE 150 SET TIMING ON ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值