####

 

1.term命令:

当和SPOOL命令联合使用时,可以取消SQLPLUS输出,查询结果仅仅存在于假脱机文件中
  set term on:查询结果既显示于假脱机文件中,又在SQLPLUS中显示;
  set term off:查询结果仅仅显示于假脱机文件中。

2.其他命令:

SQL>set colsep'|';    //-域输出分隔符

SQL>set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on

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

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

SQL>set feedback off;     //回显本次sql命令处理的记录条数,缺省为on

SQL>set heading off;   //输出域标题,缺省为on

SQL>set pagesize 0;      //输出每页行数,缺省为24,为了避免分页,可设定为0。

SQL>set linesize 80;     //输出一行字符个数,缺省为80

SQL>set numwidth 12;     //输出number类型域长度,缺省为10

SQL>set termout off;     //显示脚本中的命令的执行结果,缺省为on

SQL>set trimout on;      //去除标准输出每行的拖尾空格,缺省为off

SQL>set trimspool on;    //去除重定向(spool)输出每行的拖尾空格,缺省为off

SQL>set serveroutput on; //设置允许显示输出类似dbms_output

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

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

set verify off                       //可以关闭和打开提示确认信息old 1和new 1的显示.


原文地址:http://blog.csdn.net/ziyifengfei/article/details/9964161

目录

1.查看表结构 desc 2.编辑SQL语句 append、list、change、run 3.保存、检索并运行文件 save、get、start、edit、spool 4.格式化列 column 5.设置页面大小 pagesize 6.设置行大小 linesize 7.清除列格式 clear 8.使用变量 define 9.创建简单报表 10.帮助信息 help

1.查看表结构 desc

DESC customers;

2.编辑SQL语句 append、list、change、run

SQL> select customer_id,first_name,last_name
from customers
where customer_id = 1; CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
1 John Brown SQL> 1
1* select customer_id,first_name,last_name SQL> append , dob --在行尾添加", dob"
1* select customer_id,first_name,last_name, dob SQL> list --查看sqlplus缓存区所有行
1 select customer_id,first_name,last_name, dob
2 from customers
3* where customer_id = 1 SQL> change /customer_id = 1/customer_id = 2 --将最后一行"customer_id = 1"改为"customer_id = 2"
3* where customer_id = 2 SQL> run --执行sqlplus缓存区的查询,同/
1 select customer_id,first_name,last_name, dob
2 from customers
3* where customer_id = 2 CUSTOMER_ID FIRST_NAME LAST_NAME DOB
----------- ---------- ---------- ---------
2 Cynthia Orange 05-FEB-68 SQL> / --执行sqlplus缓存区的查询,同run CUSTOMER_ID FIRST_NAME LAST_NAME DOB
----------- ---------- ---------- ---------
2 Cynthia Orange 05-FEB-68

3.保存、检索并运行文件 save、get、start、edit、spool

SQL> select customer_id,first_name,last_name
from customers
where customer_id = 1; CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
1 John Brown SQL> save /tmp/cust_query.sql --将sqlplus缓存区的内容保存到磁盘目录
Created file /tmp/cust_query.sql SQL> get /tmp/cust_query.sql --将磁盘上的脚本读入sqlplus缓存区
1 select customer_id,first_name,last_name
2 from customers
3* where customer_id = 1 SQL> / CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
1 John Brown SQL> start /tmp/cust_query.sql --执行磁盘目录上的sql脚本 CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
1 John Brown
SQL> define _editor = 'vim';                        --改变默认编辑器

SQL> edit                                             --编辑sqlplus缓存区的内容
Wrote file afiedt.buf 1 select customer_id,first_name,last_name
2 from customers
3* where customer_id = 2 SQL> /
CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
2 Cynthia Orange
SQL> spool /tmp/cust_results.txt                    --将sqlplus的输出结果保存到磁盘文件中
SQL> /
CUSTOMER_ID FIRST_NAME LAST_NAME
----------- ---------- ----------
2 Cynthia Orange
SQL> spool off

4.格式化列 column

column product_id format 99
column name heading product_name format a13 word_wrapped
column description format a13 word_wrapped
column price format $99.99 select product_id,name,description,price
from products
where product_id < 6;

5.设置页面大小 pagesize

set pagesize 100         --设置一页显示的行数
--页面大小最大为50000,默认14

6.设置行大小 linesize

set linesize 50         --设置一行显示的字符数,默认80

7.清除列格式 clear

column product_id clear
clear columns

8.使用变量 define

select product_id,name,price
from products
where product_id = &v_product_id; --使用变量 &v_product_id
Enter value for v_product_id: 2
old 3: where product_id = &v_product_id
new 3: where product_id = 2 PRODUCT_ID product_name PRICE
---------- ------------- -------
2 Chemistry $30.00 SQL> /
Enter value for v_product_id: 3
old 3: where product_id = &v_product_id
new 3: where product_id = 3 PRODUCT_ID product_name PRICE
---------- ------------- -------
3 Supernova $25.99
SQL> set verify off                    --禁止显示旧行和新行
SQL> /
Enter value for v_product_id: 4 PRODUCT_ID product_name PRICE
---------- ------------- -------
4 Tank War $13.95
SQL> set verify on                     --重新显示新旧行
SQL> /
Enter value for v_product_id: 1
old 3: where product_id = &v_product_id
new 3: where product_id = 1 PRODUCT_ID product_name PRICE
---------- ------------- -------
1 Modern $19.95
Science
SQL> set define '#'                    --修改变量定义符为'#'
select product_id,name,price
from products
where product_id = #v_product_id;
Enter value for v_product_id: 4
old 3: where product_id = #v_product_id
new 3: where product_id = 4 PRODUCT_ID product_name PRICE
---------- ------------- -------
4 Tank War $13.95 SQL> set define '&' --将变量定义符改回'&'
select name,&v_col
from &v_table
where &v_col = &v_val; --使用变量替换表名和列名
Enter value for v_col: product_type_id
old 1: select name,&v_col
new 1: select name,product_type_id
Enter value for v_table: products
old 2: from &v_table
new 2: from products
Enter value for v_col: product_type_id
Enter value for v_val: 1
old 3: where &v_col = &v_val
new 3: where product_type_id = 1
select name,&&v_col
from &v_table
where &&v_col = &v_val; --使用&&避免重复输入变量
Enter value for v_col: product_type_id
old 1: select name,&&v_col
new 1: select name,product_type_id
Enter value for v_table: products
old 2: from &v_table
new 2: from products
Enter value for v_val: 1
old 3: where &&v_col = &v_val
new 3: where product_type_id = 1
SQL> define v_product_id = 4        --使用define命令定义变量
SQL> define v_product_id
DEFINE V_PRODUCT_ID = "4" (CHAR)
SQL>
select product_id,name,price
from products
3 where product_id = &v_product_id;
old 3: where product_id = &v_product_id
new 3: where product_id = 4 PRODUCT_ID product_name PRICE
---------- ------------- -------
4 Tank War $13.95 SQL> define
DEFINE _DATE = "06-JAN-16" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "unicode" (CHAR)
DEFINE _USER = "STORE" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000400" (CHAR)
DEFINE V_COL = "product_type_id" (CHAR)
DEFINE V_PRODUCT_ID = "4" (CHAR)
SQL> accept v_customer_id number format 99 prompt 'Customer id: '    --使用accept命令定义并设置变量
Customer id: 4
SQL> accept v_date date format 'DD-MON-YYYY' prompt 'Date: '
Date: 06-MAY-2012
SQL> accept v_password char prompt 'Password: ' hide
Password:
SQL> define
DEFINE _DATE = "06-JAN-16" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "unicode" (CHAR)
DEFINE _USER = "STORE" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000400" (CHAR)
DEFINE V_COL = "product_type_id" (CHAR)
DEFINE V_PRODUCT_ID = "4" (CHAR)
DEFINE V_CUSTOMER_ID = 4 (NUMBER)
DEFINE V_DATE = "06-MAY-2012" (CHAR)
DEFINE V_PASSWORD = "1234567" (CHAR)
SQL> undefine v_col
SQL> undefine v_product_id
SQL> undefine v_customer_id
SQL> undefine v_date
SQL> undefine v_password --使用undefine命令删除变量 SQL> define
DEFINE _DATE = "06-JAN-16" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "unicode" (CHAR)
DEFINE _USER = "STORE" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000400" (CHAR)

9.创建简单报表

vim /tmp/report1.sql

--suppress display of the statements and verification message
set echo off --禁止显示脚本中的SQL语句
set verify off --禁止显示验证消息
select product_id,name,price
from products
where product_id = &v_product_id; --使用临时变量v_product_id
SQL> @ /tmp/report1.sql
Enter value for v_product_id: 2 PRODUCT_ID product_name PRICE
---------- ------------- -------
2 Chemistry $30.00

vim /tmp/report2.sql

--suppress display of the statements and verification message
set echo off
set verify off
accept v_product_id number format 99 prompt 'Enter product id: ' --使用已定义变量v_product_id
select product_id,name,price
from products
where product_id = &v_product_id;
--clear up
undefine v_product_id
SQL> @ /tmp/report2.sql
Enter product id: 4 PRODUCT_ID product_name PRICE
---------- ------------- -------
4 Tank War $13.95

vim /tmp/report3.sql

--suppress display of the statements and verification message
set echo off --禁止显示脚本中的SQL语句
set verify off --禁止显示验证消息
select product_id,name,price
from products
where product_id = &1; --向脚本中的变量传递值
SQL> @ /tmp/report3.sql 4

PRODUCT_ID product_name    PRICE
---------- ------------- -------
4 Tank War $13.95

vim /tmp/report4.sql

--suppress display of the statements and verification message
set echo off --禁止显示脚本中的SQL语句
set verify off --禁止显示验证消息
select product_id,product_type_id,name,price
from products
where product_id = &1
and price > &2; --向脚本中的多个变量传递值

vim /tmp/report5.sql

--添加页眉
ttitle left 'Run date: ' _date center 'Run by the' sql.user ' user' right 'Page: ' format 999 sql.pno skip 2
--添加页脚
btitle center 'Thanks for running the report' right 'Page: ' format 999 sql.pno set echo off
set verify off
set pagesize 15
set linesize 70
clear columns
column product_id heading id format 99
column name heading 'Product Name' format a20 word_wrapped
column description heading Description format a30 word_wrapped
column price heading Price format $99.99 select product_id,name,description,price
from products; clear columns
ttitle off
btitle off

vim /tmp/report6.sql

--计算小计
break on product_type_id --根据列值的范围分隔输出结果
compute sum of price on product_type_id --计算一列的值
set echo off
set verify off
set pagesize 20
set linesize 70 clear columns
column price heading Price format $999.99 select product_type_id,name,price
from products
order by product_type_id; clear columns

10.帮助信息 help

help
help index

11.自动生成SQL语句

select 'drop table ' || table_name||';'
from user_tables
order by table_name; 'DROPTABLE'||TABLE_NAME||';'
------------------------------------------
drop table CUSTOMERS;
drop table EMPLOYEES;
drop table PRODUCTS;
drop table PRODUCT_TYPES;
drop table PURCHASES;
drop table SALARY_GRADES;
 
define 不区分大小写
 
 &data 和 &DATA 是一样的。

转 oracle 开发 第03章 sqlplus的更多相关文章

  1. Asp.Net MVC4 + Oracle + EasyUI 学习 序章

    Asp.Net MVC4 + Oracle + EasyUI  序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1.  简 ...

  2. Oracle SQL Developer,Oracle 开发工具之toad、SQL Developer、PL/SQL Developer等比较

    参考: oracle 的几个开发工具比较 因Oracle几乎是中大型商业企业数据的首选,所以比较一下常用与Oracle的工具. Oracle SQL Developer 免费,一般开发使用足矣,常用. ...

  3. 第03章_基本的SELECT语句

    第03章_基本的SELECT语句 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖.在这几十年里,无数的技术.产业在这片江湖 ...

  4. 如何优雅的使用vue+vux开发app -03

    如何优雅的使用vue+vux开发app -03 还是一个错误的示范,但是离优雅差的不远了... <!DOCTYPE html> <html> <head> < ...

  5. Oracle开发之窗口函数 rows between unbounded preceding and current row

    目录=========================================1.窗口函数简介2.窗口函数示例-全统计3.窗口函数进阶-滚动统计(累积/均值)4.窗口函数进阶-根据时间范围统计 ...

  6. Knockout应用开发指南 第九章:高级应用举例

    原文:Knockout应用开发指南 第九章:高级应用举例 1   Contacts editor 这个例子和微软为演示jQuery Data Linking Proposal例子提供的例子一样的提供的 ...

  7. Knockout应用开发指南 第二章:监控属性(Observables)

    原文:Knockout应用开发指南 第二章:监控属性(Observables) 关于Knockout的3个重要概念(Observables,DependentObservables,Observabl ...

  8. ASP.NET自定义控件组件开发 第五章 模板控件开发

    原文:ASP.NET自定义控件组件开发 第五章 模板控件开发 第五章 模板控件开发 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接 ...

  9. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性 深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开 ...

随机推荐

  1. Flask -- 路由

    route()装饰器把一个函数绑定到对应的URL(可以是多个)上 @app.route('/') def index(): return 'Index Page' @app.route('/hello ...

  2. Astyle编程语言格式化工具的说明

    1.工具->扩展和更新,搜astyle插件,下载安装重启,当前是2.0版本. 2.工具->选项->AStyle Formatter->Edit,填入下面的,点击save,确定. ...

  3. c语言-何为编程?

    大牛,请绕过. 新手,如果你怕我误人子弟,那也请绕过. 以下纯属个人YY 何为编程?何为程序? 说简单也简单,说复杂也复杂. 我在自学的道路上也有两三年了,也探索了两三年(非连续性),却只停留在入门阶 ...

  4. VBS 文件选择框,选择Excel文件

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 on error resume Next Set objDialog=CreateObject("UserAcc ...

  5. ebtables

    ebtables是以太网桥防火墙,以太网工作在数据链路层,ebtables过滤数据链路层包.2.6内核内置了ebtables,要使用它必须先按装她的用户空间工具(ebtables-V2.0.6),安装 ...

  6. Git 暂存区的概念

    工作区:我们在电脑里面能看到的目录,也就是我们用git init 命令初始化的那个目录.里面包含要添加文件和需要提交的文件,在这个目录下的文件,修改和变更,我们的git都能感知的到. 版本库:工作区有 ...

  7. 括号匹配(C++ Stack)

    最近在学习C++,所以使用stack容器来实现括号匹配 /**********************************************************/ stack<Ty ...

  8. 近十年one-to-one最短路算法研究整理【转】

    前言:针对单源最短路算法,目前最经典的思路即标号算法,以Dijkstra算法和Bellman-Ford算法为根本演进了各种优化技术和算法.针对复杂网络,传统的优化思路是在数据结构和双向搜索上做文章,或 ...

  9. User.java 实体类 带 数据库字段模板

    package com.tgb.web.controller.entity; import javax.persistence.Column; import javax.persistence.Ent ...

  10. screen 链接远程桌面

    screen     开一个新的screen窗口 screen -ls 查看已经存在的所有screen窗口 screen -r  208111  进入这个窗口 ctrl+a+d  退出screen,回 ...