sql*plus命令 之 交互式命令

交互式命令

 

sql*plus提供交互式命令可以接收用户输入,向用户提示提示信息,方便用户操作。

 

替换变量和绑定变量

 

替换变量:定义一个变量用于接收用户输入。使用&作为提示符, 如:&a

绑定变量:预先定义的变量。使用:作为提示符,如::a

 

在一个sql语句中包含替换变量时,sql*plus会提示用户输入,并且会每次运行sql语句,都提示提示信息,如:

S QL> l
  1  select *
  2* from student
SQL> i where code = &a;
SQL> /
输入 a 的值:  97001
原值    3: where code = &a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80  

 

SQL> /
输入 a 的值:  97001
原值    3: where code = &a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80                                                         

SQL> /
输入 a 的值:  97001
原值    3: where code = &a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80 
  

 

此时,如果你改用&&, 那么sql*plus只会提示一次,以后不再提示,并将第一次输入的值保存到sql*plus运行环境中,

此时,如果调用define命令可以看到替换变量的值。如:

 

SQL> l
  1  select *
  2  from student
  3* where code = &a
SQL> c/&a/&&a/
  3* where code = &&a
SQL> /
输入 a 的值:  97001
原值    3: where code = &&a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80                                                         

SQL> /
原值    3: where code = &&a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80                                                         

SQL> /
原值    3: where code = &&a
新值    3: where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80                                                         

SQL> define a
DEFINE A               = "97001" (CHAR)

 

下面我们看具体的命令:

 1) DEF[INE] [variable = text] | DEF[INE] variable

--- 定义替换变量| 显示替换变量的值

--- define 命令只能定义char型变量

SQL> define a = 97001
SQL> select * from student where code = &a;
原值    1: select * from student where code = &a
新值    1: select * from student where code = 97001

      CODE CLASS                     SCORE                                                         
---------- -------------------- ----------                                                         
     97001 数学                         80                                                         

SQL> define a
DEFINE A               = "97001" (CHAR)

 

 2) UNDEF[INE] variable 

---- 清除指定替换变量的定义,可以一次清除多个。

SQL> define a = 97001
SQL> define b = 97003

SQL> undefine a b
SQL> define a
SP2-0135: 符号 a 未定义
SQL> define b
SP2-0135: 符号 b 未定义

 

 3) PROMPT[text]

----将指定的提示信息text或者一个空行输出到屏幕上。

SQL> prompt "hello sql*plus!"
"hello sql*plus!"
SQL> prompt "请输入学号:"
"请输入学号:"

SQL> prompt
 

 4) PAUSE[text]

----用于暂停脚本文件的运行,将指定的提示信息text或者一个空行输出到屏幕上,用户回车后可以继续执行。

SQL> pause "hello"
"hello"

 

 5) ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE ]

     [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT] ] [HIDE]

---- 用于定义替换变量,可以定义以上几种类型

---- 可以指定变量的格式,默认值

---- 可以指定提示信息和不指定提示信息

---- 可以选择隐藏用户输入

 

SQL> accept a number
10
SQL> accept a number prompt "请输入数字:"
请输入数字:10
SQL> define a
DEFINE A               =         10 (NUMBER)

 

在sql语句中可以使用绑定变量,使用绑定变量时要在变量名称前加上:

定义绑定变量时用VARIABLE命令

给绑定变量赋值要使用 execute命令,相当于执行过程

显示绑定变量时要用PRINT命令

 

 1) VAR[IABLE][variable [NUMBER | CHAR | CHAR(n) | NCHAR| NCHAR(n) | VARCHAR2(n) | NVARCHAR2(n) | CLOB | NCLOB| REFCURESOR | BINARY_FLOAT | BINARY_DOUBLE]]

 

 2) EXECUTE variable = text

 

 3) PRINT variable1 variable2...

 

SQL> var a number
SQL> var b char
SQL> var c varchar2(10)

SQL> execute :a := 10

PL/SQL 过程已成功完成。

SQL> execute :b := 'a'

PL/SQL 过程已成功完成。

SQL> execute :c := 'aa'

PL/SQL 过程已成功完成。

SQL> print a b c

         A                                                                     
----------                                                                     
        10                                                                     


B                                                                              
--------------------------------                                               
a                                                                              


C                                                                              
--------------------------------                                               
aa                          

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值