替代变量与SQL*Plus环境设置

--============================

-- 替代变量与SQL*Plus环境设置

--============================

1.SQL与PL/SQL代码终止符

SQL代码以";"来表示代码的终止

PL/SQL代码以"."来表示代码的终止,以"/"表示代码的执行

scott@ORCL> select * from emp where empno=7788;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT ANALYST 7566 19-APR-87 3100 20

scott@ORCL> declare v_ename varchar2(10);

2 begin

3 select ename into v_ename from emp where empno=7788;

4 dbms_output.put_line('Employee Name: '||v_ename);

5 exception

6 when no_data_found then

7 dbms_output.put_line('There is no employee');

8 end;

9 .

scott@ORCL> /

Employee Name: SCOTT

PL/SQL procedure successfully completed.

2.替代变量

&变量名、&&变量名

执行时,如果&变量名,没有赋值的话,会提示输入变量值

scott@ORCL> select * from emp where empno=&no;

Enter value for no: 7788

old 1: select * from emp where empno=&no

new 1: select * from emp where empno=7788

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT ANALYST 7566 19-APR-87 3100 20

scott@ORCL> save /u01/bk/scripts/select_empno.sql

Created file /u01/bk/scripts/select_empno.sql

scott@ORCL> @/u01/bk/scripts/select_empno.sql

Enter value for no: 7788

old 1: select * from emp where empno=&no

new 1: select * from emp where empno=7788

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT ANALYST 7566 19-APR-87 3100 20

set verify 的使用

scott@ORCL> set verify off --使用set verify off来关闭替代变量使用时的提示,即执行SQL语句前不显示使用的变量值

scott@ORCL> @/u01/bk/scripts/select_empno.sql

Enter value for no: 7788

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT ANALYST 7566 19-APR-87 3100 20

对于字符型和日期型数据,替代变量要加单引号( ' ' ),将变量括起来

select * from emp where job='&job'

&& 对输入变量的再次引用,同时会保存变量的值

scott@ORCL> set serveroutput on;

scott@ORCL> begin

2 dbms_output.put_line('The num is '||&&num); --使用双&&保存了变量num的值

3 dbms_output.put_line('The second num is '||&num); --因此第二次输出变量num也是

4 end;

5 /

Enter value for num: 10

The num is 10

The second num is 10

替代变量的设置

set define character --修改缺省的替代变量符号为其他符号,但不能使用数字和空格

set define on --启用替代变量

set define off --关闭替代变量

scott@ORCL> set define off

scott@ORCL> @/u01/bk/scripts/select_empno.sql

SP2-0552: Bind variable "NO" not declared.

3. DEFINE 定义变量

define job=SALESMAN

select * from emp where job='&job'

DEFINE 查看变量

define

define varname

ACCEPT 定义替代变量

格式:accept 变量名[prompt 正文][HIDE]

4.sql plus 环境设置

set 设置环境变量

如set linesize 200

show 显示环境变量

如show all

show linesize

sql plus 环境配置文件

配置文件:

$ORACLE_HOME/sqlplus/admin/glogin.sql

安装sql plus时创建的,卸载sql plus时会删除

用户配置文件:

文件名为login.sql,位置可任意放置,启动sql plus 时所在目录下有login.sql

就会按设置进行环境配置,否则其它目录下的login.sql不理采。

为了使用的方便一般会放到oracle用户的家目录

set echo @|start 运行脚本时,是否显示脚本内容

set echo on/off

scott@ORCL> set echo on;

scott@ORCL> @/u01/bk/scripts/select_empno.sql

scott@ORCL> select * from emp where empno=&no

2 /

Enter value for no: 7788

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT ANALYST 7566 19-APR-87 3100 20

scott@ORCL> set echo off;

set feedback 设置脚注

查询时返回多少行,会有提示,feedback控制提示显示

可以是ON、OFF、n自然数,默认为

set feedback on/off

set feedback 10

set heading {on/off} 控制是否显示列名

set linesize 设置每行字符数

set autocommit {on / off } 设置是否自动提交

set long {80 |n} 设置查看长字符字段时的显示宽度

column 设置列格式

col ename format a15

通用的SQL*Plus环境变量设置

源自Tom大师:Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions

define _editor=vi

set serveroutput on size 1000000

set trimspool on

set long 5000

set linesize 180

set pagesize 9999

column plan_plus_exp format a80

column global_name new_value gname

set termout off

define gname=idle

column global_name new_value gname

select lower(user) || '@' || substr( global_name, 1,

decode( dot, 0, length(global_name), dot-1) ) global_name

from (select global_name, instr(global_name,'.') dot from global_name );

set sqlprompt '&gname> '

set termout on

5.更多参考

有关SQL请参考

SQLPlus常用命令

SQL 基础--> 子查询

SQL 基础-->多表查询

SQL基础-->分组与分组函数

SQL 基础-->常用函数

SQL 基础--> ROLLUP与CUBE运算符实现数据汇总

SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)

有关PL/SQL请参考

PL/SQL --> 语言基础

PL/SQL --> 函数

PL/SQL --> 异常处理

PL/SQL --> 存储过程

PL/SQL --> 流程控制

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

图书管理系统【部署开发环境、解决分类、图书、前台页面模块】

前言 巩固Servlet+JSP开发模式,做一个比较完整的小项目. 成果图 该项目包含了两个部分,前台和后台。 前台用于显示 ? 后台用于管理 ? 该项目可分为...

6554
来自专栏生信技能树

下载TCGA所有癌症的maf文件做signature分析

才sanger研究所已经做好了这个分析,但是值得我们重复一下,效果如下: ? TCGA所有癌症的mutation signature 首先TCGA所有癌症的ma...

75912
来自专栏芋道源码1024

MyBastis 三种批量插入方式的性能比较

数据库使用的是sqlserver,JDK版本1.8,运行在SpringBoot环境下

4753
来自专栏数据分析

使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet

之前写了一个C# 调用PowerShell方法, 那么怎么反过来操作呢,也就是怎么样用C#写一个powershell命令呢? 现在就用C#写一个超级简单的Mod...

4369
来自专栏我的小碗汤

19 个很有用的 ElasticSearch 查询语句 篇一

为了演示不同类型的 ElasticSearch 的查询,我们将使用书文档信息的集合(有以下字段:title(标题), authors(作者), summary(...

3K5
来自专栏王硕

原 透过pageinspect了解Post

38515
来自专栏.NET开发者社区

一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)

在本系列第一篇《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)》中,我为大家介绍...

30210
来自专栏移动开发面面观

ProgressiveJpeg介绍与在Android中的使用

2614
来自专栏MasiMaro 的技术博文

windows 下文件的高级操作

本文主要说明在Windows下操作文件的高级方法,比如直接读写磁盘,文件的异步操作,而文件普通的读写方式在网上可以找到一大堆资料,在这也就不再进行专门的说明。

2713
来自专栏解Bug之路

MySql之自动生成CRUD代码

MyBatis能够通过获取MySql中的information_schema从而获取表的字段等信息,最后通过这些信息生成代码。 笔者受此启发,将MyBatis...

1333

扫码关注云+社区

领取腾讯云代金券