set heading off——不显示每行的列名
set echo off——不重复显示所要执行的sql语句
set line 200——设置每行显示200字符
set pages 0——不进行分页显示
set feed off——不显示sql语句的运行结果(selected N rows)
SQL code
-- 这些代码的目的是将COMPONENT表的数据
-- 导出Insert语句
-- one_table.sql的代码是通过all_tab_columns,
-- 将表的列写成查询语句,并且加上set feedback off等设置命令
-- 并在./data/以导出表的名称命名的Sql文件,然后在执行这个文件,
-- 形成./data/以导出表的名称加_data命名的Sql文件。
--*******************************
--File main.sql
--*******************************
set echo off -- 是否显示脚本中正在执行的SQL语句 on 显示 off 不显示
set serveroutput on -- 使用dbms_output.put_line时,是否在屏幕上显示信息 on 显示 off 不显示
set feedback off -- 是否显示当前sql语句查询或修改的行数 off 不显示查询或修改的行数
set trimspool on -- 是否去除重定向(spool)输出每行的拖尾空格,on 去除 off 不去除
set line 10000 -- 设置一行显示的字符总数
set verify off -- 是否显示替代变量被替代前后的语句 on 显示 off 不显示
set head off -- 是否显示列标题 on 显示 off 不显示
@@ one_table.sql 'COMPONENT'; -- 执行main.sql目录下的one_table.sql 'COMPONENT' 是输入的参数
set head on
set line 100
set feedback on
set termout on -- 是否显示脚本中的命令的执行结果 on 显示 off 不显示
set echo on
--*******************************
--File one_table.sql
--*******************************
prompt *** Process &1 ...; -- 在屏幕上显示 *** Process COMPONENT ...
set serveroutput on
set echo off
set feedback off
set trimspool on
set line 10000
set verify off
set feedback off
set head off
set termout off
define tab_name = '&1' -- 定义变量 tab_name 并且将 'COMPONENT' 赋值给tab_name
spool ./data/&tab_name..sql -- 将屏幕显示的结果输出到./data/COMPONENT.sql文件中
declare -- 声明变量 关键字
-- 定义 游标 C1 有两个入口参数 v_owner v_tab_name
cursor c1(v_owner varchar2, v_tab_name varchar2) is
select column_name, data_type
from all_tab_columns
where table_name = v_tab_name
and owner = v_owner;
-- 变量的注释只能用猜的
field_list varchar2(4000); -- 存储表列的列表
field_list_sel varchar2(4000); -- 存储选择的表列的列表
fmt_field varchar2(200);
date_format varchar2(30) := 'yyyymmddhh24miss'; -- 日期格式
v_owner varchar2(30) := user;
v_tab_name varchar2(30) := upper(trim('&tab_name'));
begin
dbms_output.enable(1000000); -- 设置dmbs_output输出的缓冲区大小
dbms_output.put_line('set echo off feedback off'); -- 在屏幕上输出 "set echo off feedback off" 信息
dbms_output.put_line('spool ./data/&tab_name' || '_data.sql');
-- Print the insert field
dbms_output.put_line('variable field_list varchar2(4000);');
dbms_output.put_line('begin');
dbms_output.put_line(' :field_list := ''insert into &tab_name (''' );
-- 打开游标并c1并循环提取游标数据
for rec1 in c1(v_owner, v_tab_name) loop
if c1%rowcount = 1 then -- 检查游标是否只有一条数据
field_list := ' || '' ' || rec1.column_name || '''';
else
field_list := ' || '',' || rec1.column_name || '''';
end if;
dbms_output.put_line(field_list);
end loop;
dbms_output.put_line('||'')''||chr(10)||''values ('';');
dbms_output.put_line('end;');
dbms_output.put_line('/');
-- For select SQL to generate insert statement
dbms_output.put_line('select :field_list || chr(10) ||');
for rec1 in c1(v_owner, v_tab_name) loop
-- For insert values clause
if rec1.data_type = 'DATE' then
fmt_field := '''to_date(''''''||to_char(' || rec1.column_name || ', ''' ||
date_format || ''')||'''''',''''' || date_format || ''''')''';
elsif rec1.data_type in ('CHAR', 'VARCHAR2') then
fmt_field := ''''''''' || replace(' || rec1.column_name || ','''''''', '''''''''''')|| ''''''''';
else
fmt_field := 'to_char(' || rec1.column_name || ')';
end if;
if c1%rowcount = 1 then
field_list_sel := fmt_field;
else
field_list_sel := ' ||'','' || ' || fmt_field;
end if;
dbms_output.put_line(field_list_sel);
end loop;
dbms_output.put_line('|| '');''');
dbms_output.put_line('from &tab_name ;');
dbms_output.put_line('spoo off;');
end;
/
spool off;
@ ./data/&tab_name..sql
set head on
set line 100
set termout on
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进行分析
sqlplus sys/sys@DODO as sysdba
sqlplus /as sysdba
sqlplus /nolog
SQL>conn sys/sys@DODO as sysdba
1、执行一个SQL脚本
SQL> start D:/a.sql
SQL> @ D:/a.sql
注:若需要在一个脚本中调用另一个脚本,则使用 @@D:/a.sql
2、重新执行上一次命令:
SQL> / --也可使用 run/r 来替代执行
3、编辑脚本:
SQL> edit --编辑当前输入的文本(前1次执行的部分)
SQL> edit D:/a.sql --编辑制定文档
注:在txt中编辑完成后保存,关闭即修改完成,使用“/”后运行
4、保存脚本:
SQL> save a --自动存档为a.sql 保存在C:/Documents and Settings/wangxiaoqi
SQL> save D:/a --保存到D:/a.sql
5、导入脚本:
SQL> get D:/a
6、显示一个表结构:
SQL> desc tab --如果tab不是表,则只显示其类型和名字
7、保存所有输入:
SQL> spool D:/xxx --建立一个xxx.LST文件
SQL> spool --显示当前spool状态
SQL> select * from dual;
SQL> spool off --结束录入
8、执行过程
SQL> execute a;
9、增加页眉和页脚:
SQL> TTITLE abc --添加页眉“abc”
SQL> BTITLE def --添加页脚“def”
SQL> TTITLE OFF --取消页眉显示
三、COLUMN[COL]命令修改字段属性:
可以修改的属性有:
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]
注:若不同表的同列名,会一起改掉!
1、HEADING--改变字段名
SQL> COLUMN id HEADING 'XX|YY' --使用'|'可将列名显示为两行
2、FORMAT--改变字符长度 & 格式化数值
SQL> COLUMN id FORMAT a20 --此字段长20个字符,只能针对字符,若为数字则无法正常显示
SQL> COLUMN id FORMAT $999.00 --前缀$,小数点前3位,小数点后2位四舍五入
3、JUSTIFY--改变字段名显示位置
SQL> COLUMN id JUSTIFY center --居中显示,默认的都是靠右(r )显示
4、NOPRINT--不显示
SQL> COLUMN id NOPRINT --不显示出来,可用PRINT设置回来
5、NULL--设置NULL值显示
SQL> COLUMN COMM NULL 0.00 --将NULL值设置位0.00 注意必须加上COMM 注:不起作用。
6、WRAPPED--设置回绕方式
SQL> COLUMN id FORMAT a5 --设置长度为5
SQL> COLUMN id WRAPPED --表示直接按长度回绕
SQL> COLUMN id WORD_WRAPPED --按单词回绕
SQL> COLUMN id TRUNCATED --直接按长度截断
7、COLUMN--显示当前列所有属性
SQL> COLUMN id --后面不加列名时显示所有的COLUMN
8、OFF|ON--设置某一字段关闭
SQL> COLUMN id OFF
9、CLEAR--清空所有字段属性
SQL> CLEAR COLUMNS
四、SQL*Plus的系统参数:
show all --显示所有系统参数的当前值
show [参数] --显示某个系统参数值
set [参数][值] --设置系统参数值
appinfo is OFF and set to "SQL*Plus"
arraysize 15
SQL*Plus一次从oracle获取的行数,设置越大可提高效率,但是对内存有要求,1000以上效果不大
autocommit OFF
针对session的自动提交 SQL> SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n} --有IMM[EDIATE]则无需再ON
autoprint OFF
autorecovery OFF
autotrace OFF
设置可以对执行的SQL进行分析 SQL> SET AUTOTRACE ON
blockterminator "." (hex 2e)
btitle OFF and is the first few characters of the next SELECT statement
cmdsep OFF
colsep " "
设置列与列之间的分割符号 SQL> SET COLSEP '|'
compatibility version NATIVE
数据库版本,NATIVE为默认,可制定V6,V7,V8
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK is ON
define "&" (hex 26)
替换变量时所使用的字符
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
是否显示执行代码 SQL> SET ECHO {ON|OFF}
editfile "afiedt.buf"
embedded OFF
escape OFF
FEEDBACK ON for 6 or more rows
查询、修改时所影响的行数 SQL> SET FEED[BACK] {6|n|ON|OFF}
flagger OFF
flush ON
heading ON
是否显示列标题 SQL> SET HEA[DING] {ON|OFF}
headsep "|" (hex 7c)
instance "local"
linesize 100
设置一行可容纳的字符数 SQL> SET LIN[ESIZE] {80|n}
lno 8
loboffset 1
logsource ""
long 5000
longchunksize 80
markup HTML OFF ...
newpage 1
页与页之间的分隔符 SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
null ""
设置null值 SQL> SET NULL 0.00
但是此值显示出来后必为字符型
numformat ""
numwidth 10
设置number类型的长度限制 SQL> SET NUM[WIDTH] 16
pagesize 9999
一页显示多少行 SQL> SET PAGES[IZE] {24|n}
当设置为0时,则所有行显示在一页中,并且不显示标题行
PAUSE is OFF
pno 1
recsep WRAP
recsepchar " " (hex 20)
release 1002000100
repfooter OFF and is NULL
repheader OFF and is NULL
serveroutput ON SIZE 1000000 FORMAT WORD_WRAPPED
输出DBMS.OUTPUT时是否显示 SQL> SET SERVEROUT[PUT] {ON|OFF} [size n]
shiftinout INVISIBLE
showmode OFF
spool OFF
sqlblanklines OFF
sqlcase MIXED
sqlcode 0
sqlcontinue "> "
sqlnumber ON
sqlpluscompatibility 10.2.0
sqlprefix "#" (hex 23)
sqlprompt " wangxiaoqi@DODO > "
sqlterminator ";" (hex 3b)
suffix "sql"
tab ON
termout ON
是否显示输出内容,例如spool输出 SQL> SET TERM[OUT] {ON|OFF}
timing OFF
SQL语句执行花费时间显示 set TIMING {ON|OFF}
trimout ON
标准输出中每行最后的空格是否去掉 SQL> SET TRIMS[OUT] {ON|OFF}
trimspool ON
spool标准输出中每行最后的空格是否去掉 SQL> SET TRIMS[OUT] {ON|OFF}
ttitle OFF and is the first few characters of the next SELECT statement
underline "-" (hex 2d)
USER is "WANGXIAOQI"
verify ON
wrap : lines will be wrapped
当长度超过时是否回绕 SQL> SET WRA[P] {ON|OFF} --基本上都要ON
五、一些常用的小操作:
show user --查看当前登录用户
show errors --显示错误信息
show rel[ease] --显示版本
show SGA --显示SGA
set time on --前端始终显示时间
select name from v$database; --查看当前所在数据库
select * from v$instance; --查看所有数据库实例(似乎没什么用)
select * from V_$PWFILE_USERS; --查看那些用户有SYSDBA/SYSOPER权限
分享到:
相关推荐
以下是对标题和描述中涉及的`set`命令常用用法的详细说明: 1. **设置页面大小**: 使用`set pagesize <number>`命令可以设定每页显示的行数,默认值是24。增加这个数值可以一次显示更多的数据,减少滚动次数。 2...
使用 SQLPLUS 中的 SET TRACE 功能可以方便地生成 explain_plan。例如: SQL> list 1 SELECT * FROM dept, emp WHERE emp.deptno = dept.deptno SQL> set autotrace traceonly /*traceonly 可以不显示执行...
这个使用教程将帮助你理解和掌握SQLPlus的基本用法和常见命令。 一、SQLPlus的启动与退出 1. 启动SQLPlus:在命令行界面输入`sqlplus 用户名/密码@连接标识符`,如`sqlplus scott/tiger@orcl`,其中scott是用户名,...
例如,可以使用"SET"命令来配置环境设置,比如设置列宽、行宽度、页面分页、标题、页脚等。"DESC"命令用于描述数据库中的表结构,而"SELECT"语句则是用来从数据库中检索数据的标准SQL命令。通过"EDIT"命令可以编辑...
本文将详细介绍SQLPlus中常用命令的功能及用法。 #### 二、基本操作 1. **执行SQL脚本文件** - **命令:** `@script.sql` - 该命令允许用户直接在SQLPlus环境中执行预先编写好的SQL脚本文件。这对于批量执行SQL...
SQLPlus 支持多种登录模式,例如:`C:\>sqlplus -h`,可以显示 SQLPlus 版本和用法帮助。 SQLPlus 版本 使用 `-V` 选项可以显示 SQLPlus 版本,例如:`C:\>sqlplus -V`。 NOLOG 选项 使用 `/NOLOG` 选项可以启动...
1. SQLPlus的基本用法: - 启动SQLPlus:在命令行中输入`sqlplus username/password@database`,其中`username`是数据库用户名,`password`是对应密码,`database`是连接的数据库服务名或连接字符串。 - 退出...
4. **格式化输出**:使用`SET`命令可以调整输出格式,如`SET LINESIZE`设置每行的最大字符数,`SET PAGESIZE`设置每页显示的记录数。 5. **错误处理和提示**:SQLPLUS会显示执行过程中的错误信息,使用`WHENEVER ...
本教程将介绍SQL*Plus的基础知识,帮助用户掌握其基本用法。 首先,SQL*Plus不仅支持标准的SQL语言,还扩展了一些Oracle特有的命令,使得操作数据库更为便捷。要启动SQL*Plus,可以在命令行界面输入相应的命令,...
### Oracle SQLPlus中Spool命令的使用详解 在Oracle数据库管理与开发过程中,SQLPlus作为一款功能强大的命令行工具被广泛使用。其中,`spool`命令是SQLPlus中的一个重要特性,它允许用户将SQL查询结果或命令输出到...
以下是一些关键的SQLPLUS命令及其用法: 1. **连接数据库**: 使用`sqlplus用户名/密码@连接字符串`来连接到数据库。例如,`sqlplus scott/tiger@orcl`将连接到名为ORCL的数据库,使用SCOTT用户和TIGER密码。 2. ...
本文档旨在详细介绍 SQLplus 中的一些常用指令及其用法,帮助数据库管理员和开发人员更高效地管理和操作数据库。 #### 二、连接与基本操作 1. **连接数据库** ```plaintext C:\>sqlplus /nolog SQL>connect ...
- `SQL> set linesize n`设定每行最大字符数,如`SQL> set linesize 200`。 - `SQL> spool filename`可以实现假脱机输出,将查询结果保存到文件,`SQL> spool off`停止假脱机输出。 最后,Java连接Oracle数据库通常...
### SQLPlus命令使用指南 #### 一、引言 在Oracle数据库管理中,SQL Plus作为一款功能强大的命令行工具,不仅能够执行SQL语句、PL/SQL块,还能实现复杂的数据处理任务。本文将详细介绍SQL Plus中的一些常用命令...
### 精通SQL*Plus:关键知识...总之,SQL*Plus是一款功能强大的工具,掌握了其基本和高级用法后,可以极大地提高工作效率和数据库管理能力。无论是初学者还是经验丰富的DBA,都应该充分了解和利用SQL*Plus的各种特性。
### SQLPLUS命令的使用大全 #### 一、概述 SQL*Plus是Oracle数据库的一个非常重要的工具,它不仅可以作为用户友好的界面来执行SQL语句、脚本文件,还可以用来查看和管理查询结果。本文将详细介绍SQL*Plus中的常用...
3. **SQL*Plus版本和用法**:使用`-H`显示帮助,`-V`显示版本信息。登录模式可指定用户名、口令和连接标识符,或者使用`/NOLOG`启动而不连接。 4. **执行操作**:SQL语句通常以分号`(`或反斜杠`/`结束。PL/SQL块也...
以下是一些主要的SQL*Plus命令及其用法: 1. **运行SQL脚本**: - `START file_name` 或 `@ file_name`:这两条命令用来执行存储在指定文件中的SQL或PL/SQL脚本。`START` 命令会将整个文件作为一个单元来处理,而`...
- **查看SQL*Plus版本和用法**:在命令行中输入`sqlplus /?`或`sqlplus -H`、`sqlplus -V`。 4. **SQL和PL/SQL执行** - **执行SQL语句**:在SQL*Plus中直接输入SQL语句,如`SELECT * FROM table_name;`,然后按...