oracle sqlplus命令详解(官方示例)
以为内容选自Oracle官方文档,只讲command-line:
规范:<变量名> , {举例} , a | b 枚举可选值,(XX)描述
----------------------------------------------------------------------------------------------------
1、glogin.sql常用脚本(配置sqlplus command line):
-- To change the SQL*Plus prompt to display the current user,
-- connection identifier and current time.
-- First set the database date format to show the time.
ALTER SESSION SET nls_date_format = 'YYYY-MM-DD HH:MI:SS';
-- SET the SQLPROMPT to include the _USER, _CONNECT_IDENTIFIER
-- and _DATE variables.
SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> "
-- To set the number of lines to display in a report page to 24.
SET PAGESIZE 24
-- To set the number of characters to display on each report line to 78.
SET LINESIZE 78
-- To set the number format used in a report to $99,999.
--SET NUMFORMAT $99,999
--SET SERVEROUTPUT ON
2、常用命令:
--sqlplus xxx@xxx 登陆sqlplus
--exit 退出
--CTRL+C 强制中断会话
--help index 调出sqlplus帮助索引界面
{
}
--? | help <commandname> 查看指定命令说明
--@ <scriptname> 运行指定脚本
--@@ <scriptname> 同@,运行nest script时使用
--/ 执行最近脚本
--accept 接受用户输入行存储到替代变量中
{
ACCEPT pswd CHAR PROMPT 'Password: ' HIDE
}
--append 向当前SQL行追加文本
{
HR@orcl> list
1 select employee_id, last_name from employees
2*
HR@orcl> append where salary > 12000
2* where salary > 12000
HR@orcl> list
1 select employee_id, last_name from employees
2* where salary > 12000
}
--achive log 查看和管理归档信息
--attribute 设置object类型column属性
{
ATTRIBUTE EMPLOYEE_TYPE.LAST_NAME FORMAT A20
}
--break 分开重复列
{
HR@orcl> BREAK ON DEPARTMENT_ID;
HR@orcl> SELECT DEPARTMENT_ID, LAST_NAME, SALARY
2 FROM EMP_DETAILS_VIEW
3 WHERE SALARY > 12000
4 ORDER BY DEPARTMENT_ID;
DEPARTMENT_ID LAST_NAME SALARY
------------- ------------------------- ----------
20 Hartstein 13000
80 Russell 14000
Partners 13500
90 King 24000
Kochhar 17000
De Haan 17000
100 Greenberg 12008
110 Higgins 12008
HR@orcl> CLEAR BREAKS
breaks 已清除
}
--COLUMN 命令集 改变列格式
{
COLUMN SALARY FORMAT $99,999 --设置数字显示格式
COLUMN LAST_NAME FORMAT A10 --设置LAST_NAME列每行显示10个字符
COLUMN COMMISSION_PCT LIKE SALARY HEADING BONUS --LIKE通知SQLPLUS COPY之前定义好的列SALARY属性
COLUMN column_name CLEAR --清楚已设置列属性
CLEAR COLUMNS --重设所有列属性
--compute 运算查询结果集 {}
COLUMN DUMMY NOPRINT;
COMPUTE SUM OF SALARY ON DUMMY;
BREAK ON DUMMY SKIP 1;
SELECT DEPARTMENT_ID DUMMY,DEPARTMENT_ID, LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY>12000
ORDER BY DEPARTMENT_ID;
COLUMN DUMMY NOPRINT;
COMPUTE SUM OF SALARY ON DUMMY;
BREAK ON DUMMY;
SELECT NULL DUMMY,DEPARTMENT_ID, LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY>12000
ORDER BY DEPARTMENT_ID;
CLEAR COMPUTES
}
--change err/correct 修改错误代码
{
SELECT EMPLOYEE_ID, LAST_NAME, JO_ID, SALARY
*
第 1 行出现错误:
ORA-00904: "JO_ID": 标识符无效
HR@orcl> list 1
1* SELECT EMPLOYEE_ID, LAST_NAME, JO_ID, SALARY
HR@orcl> change /jo_id/job_id
1* SELECT EMPLOYEE_ID, LAST_NAME, job_id, SALARY
HR@orcl> l
1 SELECT EMPLOYEE_ID, LAST_NAME, job_id, SALARY
2 FROM EMPLOYEES
3* WHERE SALARY>12000
}
--connect | conn 会话中切换连接命令,如conn hr/hr@orcl
--disconnect 断开连接
--clear buffer 清空sql buffer
--clear screen 清空screen
--copy
--define <name> 定义变量( variables)
{
HR@orcl> define l_name = "SMITH"
HR@orcl> define --列出所有替代变量
DEFINE _DATE = "2014-02-13 03:47:00" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
DEFINE _USER = "HR" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.
1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (
CHAR)
DEFINE _O_RELEASE = "1102000100" (CHAR)
DEFINE _RC = "0" (CHAR)
DEFINE L_NAME = "SMITH" (CHAR)
HR@orcl> undefine l_name
}
--undefine 取消替代变量
--describle/desc <table| view | function | synonym| procedure> 描述表、视图的列以及函数、程序的说明。
--del <line n> 删除SQL BUFFER指定行(不知道n 则倒序删除行)
{
HR@orcl> del 3
HR@orcl> list
1 SELECT EMPLOYEE_ID, LAST_NAME, job_id, SALARY
2* FROM EMPLOYEES
HR@orcl> del
HR@orcl> list
1* SELECT EMPLOYEE_ID, LAST_NAME, job_id, SALARY
HR@orcl> del
HR@orcl> list
SP2-0223: SQL 缓冲区中不存在行。
}
--edit | ed 创建或编辑sql 脚本
--execute <statement> 执行语句
--get <sqlfilename> 将sql脚本从文件load into sql buffer
{
HR@orcl> get c:\myfile
1* select sysdate from dual;
HR@orcl> list
1* select sysdate from dual;
HR@orcl>
}
--save <filename> 将sql buffer内容保存至文件
--host <cls | del...> sql会话模式利用host命令调用cmd命令
--input 追加新行enter a new line
{
HR@orcl> LIST
1 SELECT EMPLOYEE_ID, LAST_NAME, JOB_ID, SALARY
2 FROM EMPLOYEES
3* WHERE JOB_ID='SA_MAN'
HR@orcl> input
4 ORDER BY SALARY
5
HR@orcl> l
1 SELECT EMPLOYEE_ID, LAST_NAME, JOB_ID, SALARY
2 FROM EMPLOYEES
3 WHERE JOB_ID='SA_MAN'
4* ORDER BY SALARY
}
--list | L <n> 列出SQL BUFFER中sql语句
{
HR@orcl> list
1 SELECT EMPLOYEE_ID, LAST_NAME, JOB_ID, SALARY
2 FROM EMPLOYEES
3* WHERE SALARY>12000
HR@orcl> list 2
2* FROM EMPLOYEES
}
--password 修改current user 密码
--print 打印变量
{
HR@orcl> print n
N
----------
2
}
--prompt 向screen发送消息
--quit 用法同exit
--recover 恢复数据库等操作
--repheader 放置report头(见ttitle)
--repfooter 放置report角
{
REPFOOTER PAGE CENTER 'END EMPLOYEE LISTING REPORT'
TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNO
SELECT LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY > 12000;
}
--remark | rem 单行注释
{
REMARK Commission Report;
REMARK to be run monthly.;
COLUMN LAST_NAME HEADING 'LAST_NAME';
COLUMN SALARY HEADING 'MONTHLY SALARY' FORMAT $99,999;
COLUMN COMMISSION_PCT HEADING 'COMMISSION %' FORMAT 90.90;
REMARK Includes only salesmen;
SELECT LAST_NAME, SALARY, COMMISSION_PCT
FROM EMP_DETAILS_VIEW
WHERE JOB_ID='SA_MAN';
}
--run 列出sql buffer内容同时执行该内容
--show <variable> 显示变量或参数值
--shutdown 关闭数据库(DBA用户执行)
--startup 启动数据库(DBA用户执行)
--SET 命令集:
--SET PAGESIZE 60 设置一页显示行数
--set autocommit on 设置事务自动提交
--set verify off 关闭替代变量校验
{
SQL> SET VERIFY ON
SQL> SELECT &name FROM DUAL;
输入 name 的值: 1
原值 1: SELECT &name FROM DUAL
新值 1: SELECT 1 FROM DUAL
1
----------
1
SQL> SET VERIFY OFF
SQL> SELECT &name FROM DUAL;
输入 name 的值: 1
1
----------
1
}
--SET SERVEROUTPUT ON 打开屏幕输出dbms_output
--set underline <character> 设置标题与内容分隔符号
{
HR@orcl> select * from dual;
D
-
X
HR@orcl> set underline =
HR@orcl> /
D
=
X
}
--set termout off | on 关闭打开sqlplus输出显示
--SET AUTOTRACE TRACEONLY 查看执行计划
--set feedback off 关闭”PL/SQL 过程已成功完成。“
--store and start <variable> 存储set 变量值和恢复set 变量值
{
SCOTT@orcl> store set c:\plusenv.sql --存储当前session set 变量值
已创建 file c:\plusenv.sql
SCOTT@orcl> show pagesize
pagesize 24
SCOTT@orcl> set pagesize 60
SCOTT@orcl> show pagesize
pagesize 60
SCOTT@orcl> start c:\plusenv.sql --恢复set 变量值
SCOTT@orcl> show pagesize
pagesize 24
SCOTT@orcl> host del /f c:\plusenv.sql
}
--ttitle 设置report抬头
--btitle 设置report尾
{
HR@orcl> TTITLE CENTER -
> "ACME SALES DEPARTMENT PERSONNEL REPORT"
HR@orcl> BTITLE CENTER "COMPANY CONFIDENTIAL"
HR@orcl> SELECT DEPARTMENT_ID, LAST_NAME, SALARY
2 FROM EMP_DETAILS_VIEW
3 WHERE DEPARTMENT_ID = 30
4 ORDER BY DEPARTMENT_ID, SALARY;
ACME SALES DEPARTMENT PERSONNEL REPORT
DEPARTMENT_ID LAST_NAME SALARY
------------- ------------------------- ----------
30 Colmenares 2500
30 Himuro 2600
30 Tobias 2800
30 Baida 2900
30 Khoo 3100
30 Raphaely 11000
COMPANY CONFIDENTIAL
已选择6行。
}
--spool <filename> 将屏幕显示保存到文件
--timing 计时器
{
HR@orcl> timing start sql_timer
HR@orcl> timing show
计时: sql_timer
已用时间: 00: 00: 05.25
HR@orcl> timing stop
计时: sql_timer
已用时间: 00: 00: 17.29
}
--variable <name> 声明绑定变量供PLSQL块引用
{
HR@orcl> variable ret_val number
HR@orcl> begin
2 :ret_val := 4;
3 end;
4 /
PL/SQL 过程已成功完成。
HR@orcl> print ret_val
RET_VAL
--------
$4
HR@orcl> VARIABLE employee_info REFCURSOR
HR@orcl> BEGIN
2 OPEN :employee_info FOR SELECT EMPLOYEE_ID, SALARY
3 FROM EMP_DETAILS_VIEW WHERE JOB_ID='SA_MAN' ;
4 END;
5 /
PL/SQL 过程已成功完成。
HR@orcl> PRINT employee_info
}
--whenever oserror exit 执行命令中遇到系统异常自动退出
--whenever sqlerror exit sql.sqlcode 执行命令中遇到SQL异常自动退出
--XQUERY 运行xquery语句
{
set long 160
set linesize 160
xquery for $i in ora:view("EMP_DETAILS_VIEW") return $i
/
}
To be continue...
---------------------------
Dylan Presents.
oracle sqlplus命令详解(官方示例)的更多相关文章
- oracle sqlplus命令详解
涉及到的知识要点 a.带有一个&的替换变量的用法b.带有两个&的替换变量用法c.define命令用法d.accept命令用法e.定制SQL*Plus环境f.在glogin.sql文件中 ...
- Oracle Analyze 命令 详解
官网的链接如下: http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_4005.htm#SQLRF01105 使用DBMS ...
- oracle set命令详解
SQL>set colsep '|'; //输出分隔符eg.SQL> set colsep '|';SQL> select * from dept; DEPTNO|DNAME ...
- Linux ps命令详解与示例说明
ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结 ...
- Oracle rman 命令详解
一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation; list ba ...
- Linux tcpdump 命令详解与示例
命令概要 Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的.TcpDump 是 Linux 中强大的网络数据采集分析工具之一. 用简单的话来定义tcpdump,就是:du ...
- oracle中imp命令详解 .
转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...
- oracle数据库exp/imp命令详解
转自http://wenku.baidu.com/link?url=uD_egkkh7JtUYJaRV8YM6K8CLBT6gPJS4UlSy5WKhz46D9bnychTPdgJGd7y6UxYtB ...
- Linux lsof命令详解和使用示例【转】
所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接 ...
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
随机推荐
- [转帖]Linux查看raid1和raid10分别由哪些盘组成,在哪个槽位
查找有问题的盘 MegaCli64 -PDList -aALL |grep "Firmware state" 6个盘,2个坏了 查看raid级别和硬盘的状态 MegaCli64 - ...
- [转帖]012 Linux 搞懂用户权限升级 (sudo 和 su),包学会
https://my.oschina.net/u/3113381/blog/5431540 Linux 系统中 root 账号通常用于系统的管理和维护,对操作系统的所有资源具有访问控制权限,当一个普通 ...
- ToneGenerator Init failed Crash 崩溃
需求需要在扫码时产生一个短促的提示音, 搜了下像这样实现.测试时发现多次扫码后,会触发程序崩溃问题. 异常如下 java.lang.RuntimeException: Init failed at a ...
- vue中设置props参数类型
props参数的使用 在使用vue的项目开发的过程中 经常会定义大量的组件使用 这个时候组件中的定义的数据类型就非常重要了 此时我们需要定义组件中需要的数据类型 之前我只知道简单的几个 今天忽然发现原 ...
- 过滤器filters对时间格式的处理
在表格中,我们经常会对时间格式进行处理: 这个时候,我们就可以使用过滤器了. 过滤器是不会,改变原始值 {{ mess | dotime }} {{ mess | do2time }} mess: & ...
- 【JS 逆向百例】建筑市场监管平台企业数据
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关. 逆向目标 目标:住房和城乡建设部&全国建筑市场监管公共服务平台的企业数据 主页:http: ...
- [LeetCode刷题记录]113 路径总和 II
题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 难度 中等 题解 采用深度搜索优先,遍历每条从根节点到叶子节点的 ...
- C++ LibCurl实现Web隐藏目录扫描
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP.FTP.SMTP.POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发 ...
- 【链表】链表OJ-力扣2074. 反转偶数长度组的节点【超详细的算法解释】
说在前面 今天博主给大家带来的是力扣上的一道链表OJ,完成这道题后,博主感觉这题覆盖了很多链表的解题思想,另外,这道题对指针的控制也是比较高的.在这里博主将这道好题分享给大家! 另外,对于链表等数据结 ...
- Leetcode刷题第五天-二分法-回溯
215:第k个最大元素 链接:215. 数组中的第K个最大元素 - 力扣(LeetCode) em~~怎么说呢,快速选择,随机定一个目标值,开始找,左边比目标小,右边比目标大,左右同时不满足时,交换左 ...