Oracle数据库SQLPLUS介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库SQLPLUS介绍相关的知识,希望对你有一定的参考价值。
参考技术AOracle数据库SQLPLUS介绍
SQLPLUS是ORACLE公司开发的很简洁的管理工具,SQLPLUS是最好的,最核心的ORACLE管理工具。SQLPLUS简洁而高效,舍弃浮华,反璞归真。使用sqlplus,进入sqlplus并进行简单的操作目的是熟悉oracle的小工具sqlplus的使用。
1、如何进入SQLPLUS界面
进入DOS,然后键入如下命令
C:\\>sqlplus /nolog
进入字符界面
C:\\>sqlplusw /nolog
进入windows界面,windows平台特有的。
/nolog是不登录的意思。只进入SQLPLUS程序提示界面。
等待你输入命令。
2、SQLPLUS的基本操作
Sql>connect / as sysdba
连接到本地的最高帐号
Sql>help index
Enter Help [topic] for help.
Sql>show all
显示当前SQLPLUS的环境设置
Sql>show user
显示当前所登录的.用户信息
SQL> clear screen
有的时候sqlplus会显示的有点乱,光标不在最后,请清屏.
3、一些常用命令
Spool
命令是将屏幕的显示输入到文本文件内,以便查看,有点象屏幕转存。
SPOOL C:\\1.TXT
SELECT * FROM EMP;
SPOOL OFF
以上三行就将SPOOL和SPOOL OFF所夹的屏幕输出到c:\\1.txt文件中。
Spool c:\\1.txt append
Select * from dept;
Spool off
加APPEND命令的含义是续写c:\\1.txt,如果不加,将会把原来的c:\\1.txt覆盖,这是10G的新特性,
以前的数据库版本不能续写,只能指定新的文件名称。
Run
运行SQLPLUS缓冲区内的SQL语句,可以缩写为r
/
与run命令相同,运行SQLPLUS缓冲区内的SQL语句
@脚本
@%oracle_home%\\rdbms\\admin\\utlxplan.sql
该句话的含义为运行指定的脚本。
@@为运行相对路径下的脚本,一般是在大脚本调用小脚本的时候使用。
Save
将当前SQLPLUS缓冲区内的SQL语句保存到指定的文件中
如save c:\\2.txt
Get
将文件中的SQL语句调入到SQLPLUS缓冲区内。
如 get c:\\2.txt
Edit
编辑当前SQLPLUS缓冲区内的SQL语句,如ed
注释
--是注释当前行
/* */是注释多行
PS:注意书写语句的时候要加上分号 ” ; ”
;oracle批量新增更新数据
本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法:
批量新增数据
对于批量新增数据,介绍两种方法
(1)命令窗口执行的
一种需要在命令窗口执行的,Oracle数据库可以使用sqlplus或者plsql developer客户端软件
可以使用sqlplus工具登录,进入数据库
sqlplus / as sysdba
查看用户,可以用命令
show parameter db_name
plsql developer也可以使用,登录之后,选择文件(File)->新建(New)->命令窗口(Command Window)
假如要往表格t里写1000条数据,可以用如下批处理命令:
begin
for i in 1 .. 1000
loop
execute immediate
‘insert into t values(‘|| i ||‘)‘;
end loop;
commit;
end;
ps:这个commit提交事务,放的位置也是有区别的,具体可以参考我之前的博客,Oracle体系结构学习笔记里面有涉及到
(2) SQL窗口执行的
然后介绍sql窗口执行的方法,因为命令窗口执行有时候觉得不太便利,所以可以使用sql窗口的方法,语法大致为:
insert into [表格名称](字段名称1,字段名称2,...) [查询SQL]
给个例子,sys_guid()生成uuid数据,sysdate获取当前时间,然后批量写数据,根据查询sql来
insert into t_stuff_dir_related
(seq, dir_seq, create_date, create_man, stuff_id, t_item)
select sys_guid(),
‘uuidss‘,
sysdate,
‘admin‘,
b.rs_id,
a.t_item
from t_itm_define a
where a.is_valid =1
批量更新数据
对于批量更新的和批量新增方法类型,同样可以用命令窗口和sql窗口两种方法
(1)命令窗口执行的
同样可以用如下批处理命令:
begin
for i in 1 .. 1000
loop
execute immediate
‘${更新SQL}‘;
end loop;
commit;
end;
(1)SQL窗口执行的
批量更新加了where条件就可以
update t_itm_rcv_stuff stuff
set stuff.dir_seq = ‘${目录SEQ}‘, stuff.dir_name = ‘${目录名称}‘
where stuff.t_item in
(select a.t_item
from t_itm_define a)
以上是关于Oracle数据库SQLPLUS介绍的主要内容,如果未能解决你的问题,请参考以下文章