Oracle - SQL*PLUS使用

2 篇文章 0 订阅

SQL*PLUS的使用

1.查看表结构

DESCRIBE TABLENAME
DESC TABLENAME

2.编辑SQL语句

A[PPEND] text将text附加到当前行之后
C[HANGE]/old/new将当前行中的old替换为new
CL[EAR]BUFF[ER]清除缓冲区中的所有航
DEL删除当前行
DEL x删除第x行(行号从1开始)
L[IST]列出缓冲区中所有的行
L[IST] x列出第x行
R[UN]运行缓冲区中保存的语句
/等同于RUN
x将第x行作为当前行

3.保存、检索并运行文件

SAV[E] filename [{REPLACE | APPEND}]将Sql*Plus缓冲区的内容保存到由filename指定的文件中。APPEND选项说明将缓冲区中的内容追加到一个现有文件之后;APPLACE说明覆盖现有的文件。
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指定的文件中,并关闭该文件

4.变量的使用

变量被创建后,可以在SQL语句中替代实际值使用。由于这些变量通常都用来替代值,因此也被称为替换变量(substitution variable)。在运行SQL语句时为变量输入值,就会在SQL语句中将变量替换为这些值。

替换变量有两种类型:

  • 临时变量 temporary variable
  • 已定义变量 defined variable,一直保留,知道被显式的删除、重定义或退出SQL*PLUS为止

4.1临时变量

使用字符&定义临时变量,后面跟上要定义的变量名。
例如,&v_acct_id就定义了一个名为v_acct_id的变量。

SQL> SELECT ACCT_ID, NAME, ADDRESS
2	FROM S_CORP_ACCT
3	WHERE ACCT_ID = &V_ACCT_ID;
Enter value for V_ACCT_ID: 2
old	3: WHERE ACCT_ID = &V_ACCT_ID
new	3: WHERE ACCT_ID = 2

如果使用斜线字符(/)再次运行查询,SQL*Plus就是提示要为V_ACCT_ID变量输入一个新值。

4.1.1 控制输出行

--旧行和新航的输入可以使用SET VERIFY命令控制。如果输入SET VERIFY OFF,就会禁止显示旧行和新行。
SQL> SET VERIFY OFF
SQL> /
Enter value for v_acct_id: 4
SET VERIFY ON

4.1.2 修改变量定义符

SET DEFINE命令用于指定一个除&之外的字符,用来定义变量。

下面这个例子将使用SET DEFINE命令将变量定义符设置为井号字符(#).

SQL> SET DEFINE '#'
SQL> SELECT ACCT_ID, NAME, ADDRESS
2 FROM S_CORP_ACCT
3 WHERE ACCT_ID = #V_ACCT_ID;
Enter value for V_ACCT_ID: 3
old	3: WHERE ACCT_ID = #V_ACCT_ID
new	3: WHERE ACCT_ID = 3
SQL> SET DEFINE '&'

4.1.3 使用变量替换表名和列名

变量不但可以用来替换列值,还可以用来替换表名和列名。

SQL> SELECT NAME,&V_COL
2 FROM &V_TABLE
3 WHERE &V_COL = &V_VALUE
Enter value for V_COL: acct_id
# The 1st line
Enter value for V_TABLE: S_CORP_ACCT
# The 2nd line
Enter value for V_COL: ACCT_ID
Enter value for V_VAL: 1
# The last line
##使用&&可以避免重复输入变量
SQL>SELECT NAME,&&V_COL
2 FROM &V_TABLE
3 WHERE &&V_COL = &V_VAL;

4.2 已定义变量

在SQL语句中,使用变量前对其进行定义;在同一条SQL语句中还可以多次使用这个变量。知道被显式的删除、重定义或退出SQL*PLUS为止。

可以使用DEFINE命令定义变量。使用完滞后,可以使用UNDEFINE命令将其删除。

ACCEPT命令:可以定义变量,同时为变量指定数据类型

4.2.1 使用DEFINE命令定义并查看变量

DEFINE命令既可以用来定义新变量,也可以用来查看当前已经定义的变量

SQL> DEFINE V_ACCT_ID = 7

使用DEFINE命令加上变量名就可以用来查看变量的定义

SQL> DEFINE V_ACCT_ID
define v_ACCT_ID 	=	"7"(CHAR)

单独输入DEFINE命令,可以看到当前会话的所有变量。

SQL> DEFINE
DEFINE _DATE		= "06-MAY-12"(CHAR)
DEFINE _CONNECT_IDENTIFIER 	="orcl"(CHAR)
DEFINE	_USER	= "STORE"(CHAR) 
DEFINE  _PRIVILEGE 	=""(CHAR) 
DEFINE _SQLPLUS_RELEASE ="1201000001"(CHAR)
DEFINE _EDITOR  ="vi"(CHAR) 
DEFINE _O_RELEASE = "1201000001" (CHAR)
DEFINE 1 = "employee_id"(CHAR) DEFINE 2 = "=" (CHAR)
DEFINE 3 ="1"(CHAR)
DEFINE _RC = "0" (CHAR)
DEFINE V_STATEMENT_ID = "NO_HINT"(CHAR)
DEFINE V_CoL = "product_type_id"(CHAR) DEFINE V_PRODUCT_ID = b "7"(CHAR)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值