Oracle:使用SQL*Plus
来源:互联网 发布:autodesk公司的软件 编辑:程序博客网 时间:2024/05/18 18:54
一.查看表结构
DESC test;
二.编辑sql语句
A[PPEND] text :将text附加到当前行之后
C[HANGE]/old/new:将当前行中的old替换成new
CL[EAR]BUFF[ER]:清除缓冲区中的所有行
DEL:删除当前行
DEL x:删除第X行
L[IST]:列出缓冲区中所有的行
L[IST] x:列出第X行
R[UN]或/:运行缓冲区中保存的语句
x:将第X行作为当前行
例子:
SQL>1 --显示第一行结果:select idSQL>APPEND ,id_type --添加id_type列结果:select id,id_typeSQL>LIST --显示缓冲区中的所有行结果:select id,id_type from test where id = 1;SQL>CHANGE/id = 1/id = 2结果: where id = 2;SQL>RUN --运行缓冲区的所有行 也可以使用/结果:select id,id_type from test where id = 2;id id_type---------------2 01
三.保存检索、并运行文件
SAV[E] filename[{REPLACE|APPEND}] :将SQL*Plus缓冲区的内容保存到由filename指定的文件中。append选项说明在将缓冲区中的内容追加到一个现有的文件之后;replace选项说明覆盖一个现有的文件
GET filename:将filename指定的文件的内容读入SQL*Plus缓冲区中。
STA[RT] filename :将filename指定的文件的内容读入SQL*Plus缓冲区中,然后运行缓冲区中的内容
@filename:与start命令相同
ED[IT]:将SQL*Plus缓冲区的内容复制到一个临时文件中,然后启动操作系统中默认的编辑器。在退出编辑器时,所编辑文件的内容将被复制到SQL*Plus缓冲区中。
ED[IT] filename:与EDIT命令相同,但是可以指定要编辑的文件,使用filename参数指定文件名
SPO[OL] filename:将SQL*Plus中的输出结果复制到filename指定的文件中,复制时从spool命令后面开始,并在spool off命令处结束
SPO[OL] OFF:停止将SQL*Plus中的输出结果复制到filename指定的文件中,并关闭该文件
例子:
SQL>select id, id_type from test where id = 1;
1:保存sql到test_query.sql中 ,在运行这个例子前,请先在c盘创建sql_files
环境:windows环境
SQL>SAVE C:\sql_files\test_query.sql
环境:Linux环境
SQL>SAVE /sql_files/test_query.sql
2:检索test_query.sql中的内容
环境:windows环境
SQL>GET C:\sql_files\test_query.sql select id, id_type from test where id = 1;
环境:Linux环境
SQL>GET /sql_files/test_query.sql
3:使用/进行查询此查询:
SQL>/结果:id id_type------------1 01
4:使用START进行加载并查询:
环境:windows环境
SQL>START C:\sql_files\test_query.sql 结果:id id_type------------1 01
环境:Linux环境
SQL>START /sql_files/test_query.sql
5:EDIT启动默认的编辑器,windows中默认编辑器时notepad,linux和unix中默认编辑器是ed。
SQL>EDIT--在编辑器中修改sql修改为select id, id_type from test where id = 2;SQL>/id id_type------------2 01
6:spool将SQL*Plus的输出结果复制到文件中。
SQL>SPOOL C:\sql_files\test_results.txtSQL>SPOOL OFF
四.设置显示格式与设置页面显示大小
1:格式化列与清除格式化:
格式化:COL[UMN] {column | alias} [options]
column :列名
alias:指定要格式化的列的名称。
options:指定用于格式化列或别名的一个或多个选项
例如:
SQL>COLUMN id_type FORMAT A1 WORD_WRAPPEDSQL>select id,id_type from testwhere id = 1id id_type-------------1 01
清除格式化:
清除某一列的格式化
SQL>COLUMN id CLEAR
清除所有的格式化
SQL>COLUMN CLEAR
2:设置页面大小(默认为14,最大为50000)
使用SET PAGESIZE
SQL>SET PAGESIZE 1SQL>/id id_type-------------1 01
3:设置行大小(默认为80,最大为32767)
使用SET LINESIZE
SQL>SET LINESIZE 10SQL>/id id_type-------------1 01
五.变量
1:临时变量
使用&字符定义临时变量,后面跟上要定义的变量名
SQL>select id,id_type from testwhere id = &v_id;Enter value for v_id : 1old 3: where id = &idnew 3: where id = 1id id_type-----------1 01
1.1.控制输出行:
禁止显示旧行和新行
SQL>SET VERIFY OFFSQL>/结果:id id_type-----------1 01
1.2**改回&**
SQL>SET DEFINE '&'
1.3.使用变量替换表名和列名
SQL>select id,&id_type from &testwhere &id_type = &v_val;Enter value for &id_type : id_typeold 1: select id,&id_type new 1: select id,id_type Enter value for &test : testold 2: from &test new 2: from testEnter value for &id_type : id_typeEnter value for &v_val : 01old 3: where &id_type = &v_valnew 3: where id_type = '01'id id_type-----------1 012 01
使用&&可以避免重复输入变量
SQL>select id,&&id_type from &testwhere &&id_type = &v_val;Enter value for &&id_type : id_typeold 1: select id,&&id_type new 1: select id,id_type Enter value for &test : testold 2: from &test new 2: from testEnter value for &v_val : 01old 3: where &&id_type = &v_valnew 3: where id_type = '01'id id_type-----------1 012 01
2:已定义变量
在同一条SQL语句中可以多次使用这个变量,已定义变量会一直保留,知道显式地将其删除、重定义或退出SQL*Plus为止。
DEFINE 定义变量
ACCEPT 定义并设置变量
UNDEFINE 删除变量
2.1.DEFINE :定义并查看变量
SQL>DEFINE v_id_type = '01'SQL>DEFINE v_id_typeDEFINE V_ID_TYPE = '01';--查看当前会话的所有变量SQL>DEFINEDEFINE V_ID_TYPE = '01';--指定元素SQL>select id,id_type from testwhere id_type = &v_id_type;old 3: where id_type = &v_id_typenew 3: where id_type = '01'id id_type-----------1 012 01
2.2.ACCEPT :定义并设置变量
用于等待用户为变量输入值。
ACCEPT命令既可以将现有的变量设置为新值,也可以定义新变量,并使用值对新变量进行初始化。还允许为变量指定数据类型。
SQL>ACCEPT v_id NUMBER FORMAT 99 PROMPT 'id:'id: 1
隐藏输入的值
SQL>ACCEPT v_password CHAR PROMPT 'Password: ' HIDEPassword:
输入时什么也不显示
日期
SQL>ACCEPT v_date DATE PROMPT 'DD-MON-YYYY' PROMPT 'Date: ' Date: 02-OCT-2017
2.3.UNDEFINE:删除变量 (如果不显示删除,也会在SQL*Plus退出时全部被删除)
SQL>UNDEFINE v_id_type
六.简单报表
1.在脚本中使用临时变量
SET ECHO OFF --禁止SQL*Plus显示脚本中的sql语句和命令SET VERIFY OFF --禁止显示验证消息select id,id_type from testwhere id = &v_id;然后通过@ C:\sql\report1.sql 运行命令SQL>@ C:\sql\report1.sqlEnter value for v_id: 1id id_type----------1 01
2.在脚本中使用已定义变量
SET ECHO OFF --禁止SQL*Plus显示脚本中的sql语句和命令SET VERIFY OFF --禁止显示验证消息ACCEPT v_id NUMBER FORMAT 99 PROMPT 'Enter id: 'select id,id_type from testwhere id = &v_id;--clean upUNDEFINE v_idSQL>@ C:\sql\report2.sqlEnter id: 1id id_type----------1 01
七.获取帮助信息
SQL>HELPSQL>HELP INDEXSQL>HELP EDIT
- Oracle,SQL Plus使用
- Oracle:使用SQL*Plus
- Oracle SQL*plus使用基础
- 使用oracle sql*plus 分析sql
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例
- Oracle SQL*PLUS命令的使用大全
- ORACLE常用命令总结-SQL*PLUS使用
- [Oracle]SQL*PLUS命令的使用大全
- Oracle基本使用----sql*plus常用命令
- Oracle SQL plus环境设置与使用
- oracle tnsping命令、sql*plus使用
- oracle 11g中sql plus使用
- Oracle的sql*plus
- Oracle的sql*plus
- Oracle的sql*plus
- Oracle Sql*plus 初步
- oracle sql*plus 常用命令
- MFC Combox SetItemData与GetItemData使用实例
- 套接字编程
- MinGW详细介绍
- Docker Swarm 入门
- 习题5.2
- Oracle:使用SQL*Plus
- Unity 游戏帧率优化,设置分辨率
- KindEditor用法介绍
- 面向对象--this关键字
- JavaScript 相等和绝对相等(===)
- UDP套接字编程
- SpringMVC @ResponseBody处理流程
- OGNL学习
- 最简单的嵌入式Linux下ntp实现