转至:https://blog.csdn.net/iteye_20746/article/details/81801309?utm_medium=distribute.pc_relevant.none-task-blog-title-5&spm=1001.2101.3001.4242

Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。

我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。

除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。

1. 执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。

2. 对当前的输入进行编辑
SQL>edit

3. 重新运行上一次运行的sql语句
SQL>/

4. 将显示的内容输出到指定文件
SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。

5. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。

6.显示一个表的结构
SQL> desc table_name

7. COL命令: 主要格式化列的显示形式。

SQL> help col

COLUMN

------

Specifies display attributes for a given column, such as:

- text for the column heading

- alignment for the column heading

- format for NUMBER data

- wrapping of column data

Also lists the current display attributes for a single column

or all columns.

COL[UMN] [{column | expr} [option ...] ]

where option represents one of the following clauses:

ALI[AS] alias

CLE[AR]

ENTMAP {ON|OFF}

FOLD_A[FTER]

FOLD_B[EFORE]

FOR[MAT] format

HEA[DING] text

JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]}

LIKE {expr | alias}

NEWL[INE]

NEW_V[ALUE] variable

NOPRI[NT] | PRI[NT]

NUL[L] text

OLD_V[ALUE] variable

ON|OFF

WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]

7.1. 改变缺省的列标题 :COLUMN column_name HEADING column_heading
SQL> select * from scott.dept;

DEPTNO DNAME LOC

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

10 ACCOUNTING NEW YORK

SQL> col loc heading location

SQL> select * from scott.dept;

DEPTNO DNAME location

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

10 ACCOUNTING NEW YORK

7.2. 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:

SQL> select empno,ename from scott.emp where rownum=1;

EMPNO EName

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

7369 SMITH

SQL> COLUMN ENAME HEADING Employee|Name

SQL> select empno,ename from scott.emp where rownum=1;

Employee

EMPNO Name -- 注意,此处变成了2行

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

7369 SMITH

7.3. 改变列的显示长度:
FOR[MAT] format
Sql> col ename format a40

7.4. 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> select * from scott.dept;

DEPTNO DNAME location

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

10 ACCOUNTING NEW YORK

SQL> col dname justify right

SQL> /

DEPTNO DNAME location

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

10 ACCOUNTING NEW YORK
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边

7.5 . 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> select * from scott.dept;

DEPTNO DNAME location

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

10 ACCOUNTING NEW YORK

SQL> col dname noprint;

SQL> /

DEPTNO location

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

10 NEW YORK

7.6. 格式化NUMBER类型列的显示:
SQL> select sal from scott.emp where rownum=1;

SAL

----------

800

SQL> col sal format $999.990

SQL> /

SAL

---------

$800.000

7.7. 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text

7.8. 设置一个列的回绕方式 :WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]

SQL> create table dmm(test varchar2(100));

表已创建。

SQL> insert into dmm values('I am DBA');

已创建 1 行。

SQL> select * from dmm;

TEST

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

I am DBA

SQL> col test format a2

SQL> /

TE

--

I

SQL> col test wrapped

SQL> /

TE

--

I

am

D

BA

SQL> col test word_wrapped

SQL> /

TE

--

I

am

DB

A

7.9 . 显示列的当前的显示属性值
SQL> COLUMN column_name

7.10. 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS

8. 屏蔽掉一个列中显示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL FROM scott.EMP WHERE SAL < 2500

9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
BREAK ON break_column SKIP n

SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300

20 SMITH 800
ADAMS 1100

10. 显示对BREAK的设置
SQL> BREAK

11. 删除 break的设置
SQL> CLEAR BREAKS

12. Set 命令:
SQL> help set

SET

---

Sets a system variable to alter the SQL*Plus environment settings

for your current session. For example, to:

- set the display width for data

- customize HTML formatting

- enable or disable printing of column headings

- set the number of lines per page

In iSQL*Plus, you can also use the Preferences screen to set

system variables.

SET system_variable value

where system_variable and value represent one of the following clauses:

APPI[NFO]{OFF|ON|text} NUM[WIDTH] {10|n}

ARRAY[SIZE] {15|n} PAGES[IZE] {14|n}

AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n} PAU[SE] {OFF|ON|text}

AUTOP[RINT] {OFF|ON} RECSEP {WR[APPED]|EA[CH]|OFF}

AUTORECOVERY {OFF|ON} RECSEPCHAR {_|c}

AUTOT[RACE] {OFF|ON|TRACE[ONLY]} SERVEROUT[PUT] {ON|OFF}

[EXP[LAIN]] [STAT[ISTICS]] [SIZE {n | UNLIMITED}] [FOR[MAT]

BLO[CKTERMINATOR] {.|c|ON|OFF} {WRA[PPED] |

CMDS[EP] {;|c|OFF|ON} WOR[D_WRAPPED] |

COLSEP {_|text} TRU[NCATED]}]

CON[CAT] {.|c|ON|OFF} *SHIFT[INOUT] {VIS[IBLE] |

COPYC[OMMIT] {0|n} INV[ISIBLE]}

COPYTYPECHECK {ON|OFF} *SHOW[MODE] {OFF|ON}

DEF[INE] {&|c|ON|OFF} *SQLBL[ANKLINES] {OFF|ON}

DESCRIBE [DEPTH {1|n|ALL}] SQLC[ASE] {MIX[ED] |

[LINENUM {OFF|ON}] [INDENT {OFF|ON}] LO[WER] | UP[PER]}

ECHO {OFF|ON} *SQLCO[NTINUE] {> | text}

*EDITF[ILE] file_name[.ext] *SQLN[UMBER] {ON|OFF}

EMB[EDDED] {OFF|ON} SQLPLUSCOMPAT[IBILITY] {x.y[.z]}

ESC[APE] {/|c|OFF|ON} *SQLPRE[FIX] {#|c}

FEED[BACK] {6|n|ON|OFF} *SQLP[ROMPT] {SQL>|text}

FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL} SQLT[ERMINATOR] {;|c|ON|OFF}

*FLU[SH] {ON|OFF} *SUF[FIX] {SQL|text}

HEA[DING] {ON|OFF} *TAB {ON|OFF}

HEADS[EP] {||c|ON|OFF} *TERM[OUT] {ON|OFF}

INSTANCE [instance_path|LOCAL] *TI[ME] {OFF|ON}

LIN[ESIZE] {80|n} ({150|n} iSQL*Plus) TIMI[NG] {OFF|ON}

LOBOF[FSET] {1|n} *TRIM[OUT] {ON|OFF}

LOGSOURCE [pathname] *TRIMS[POOL] {OFF|ON}

LONG {80|n} UND[ERLINE] {-|c|ON|OFF}

LONGC[HUNKSIZE] {80|n} VER[IFY] {ON|OFF}

MARK[UP] HTML [OFF|ON] WRA[P] {ON|OFF}

[HEAD text] [BODY text] [TABLE text] XQUERY {BASEURI text|

[ENTMAP {ON|OFF}] ORDERING{UNORDERED|

[SPOOL {OFF|ON}] ORDERED|DEFAULT}|

[PRE[FORMAT] {OFF|ON}] NODE{BYVALUE|BYREFERENCE|

NEWP[AGE] {1|n|NONE} DEFAULT}|

NULL text CONTEXT text}

NUMF[ORMAT] format

An asterisk (*) indicates the SET option is not supported in iSQL*Plus.

12.1. 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}

12.2.在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}

12.3. 是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数

12.4. 是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替

12.5.设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。

12.6.设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。

12.7 .显示时,用text值代替NULL值
SQL> SET NULL text

12.8.设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题

12.9.是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF}
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。 dbms_output.put_line会"吃掉"最前面的空格?

在set serveroutput on后加上format wrapped参数!

12.10. 当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL> SET WRA[P] {ON|OFF}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。

12.11 .是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。

12.12 .将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}

12.13 显示每个sql语句花费的执行时间
set TIMING {ON|OFF}

12.14 SET SQLBLANKLINES ON

Sql*plus中, 不允许sql语句中间有空行, 这在从其它地方拷贝脚本到sql*plus中执行时很麻烦. 原因是sqlplus遇到空行就认为是语句结束了.
其实要改变这种现象, 只要使用SQLBLANKLINES参数就可以了
SET SQLBLANKLINES ON

关于SET 命令的一些简单的示例

1.set verify on/off

当在sqlplus中运行的sql语句中有替代变量(以&或&&打头)的时候,
set verify(或ver) on/off可以设置是否显示替代变量被替代前后的语句。
如:
SQL> set ver on;
SQL> select * from dual where 1=&var;
Enter value for var: 1
old 1: select * from dual where 1=&var
new 1: select * from dual where 1=1

DU
--
X

而如果设为off,则显示如下:
SQL> set ver off;
SQL> select * from dual where 1=&var;
Enter value for var: 1

DU
--
X
使用以&和&&开头的替代变量的前提是set define on;(不过这是缺省状态)。

2. set feedback on/off

回显本次sql命令处理的记录条数,缺省为on

SQL> select * from test where id = 1;

NAME ID
---------- ----------
a 1
b 1

已选择2行。

SQL> set feedback off;
SQL> /

NAME ID
---------- ----------
a 1
b 1

SQL> set feedback on;
SQL> /

NAME ID
---------- ----------
a 1
b 1

已选择2行。

3. set timing on

SQL> set timing on
SQL> select * from v$version;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE 10.2.0.1.0 Production

TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

已用时间: 00: 00: 00.00

14.修改sql buffer中的当前行中,第一个出现的字符串
C[HANGE] /old_value/new_value
SQL> l
1* select * from dept
SQL> c/dept/emp
1* select * from emp

15.编辑sql buffer中的sql语句
SQL>EDI[T]

16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
L[IST] [n]

17.在sql buffer的当前行下面加一行或多行
I[NPUT]

18.将指定的文本加到sql buffer的当前行后面
A[PPEND]

SQL> select deptno,dname from scott.dept;

DEPTNO DNAME

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

10 ACCOUNTING

20 RESEARCH

30 SALES

40 OPERATIONS
SQL> l

1* select deptno,dname from scott.deptloc, loc

SQL> a , dmm

1* select deptno,dname from scott.deptloc, loc, dmm

19.将sql buffer中的sql语句保存到一个文件中
SAVE file_name

20.将一个文件中的sql语句导入到sql buffer中
GET file_name

21.再次执行刚才已经执行的sql语句
RUN
or
/

22.执行一个存储过程
EXECUTE procedure_name

23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias

24.设置每个报表的顶部标题
TTITLE

25.设置每个报表的尾部标题
BTITLE

26.写一个注释
REMARK [text]

27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]

28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]

Sql>PAUSE Adjust paper and press RETURN to continue.

29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database }
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query

sql>COPY FROM SCOTT/TIGER@A TO DAVE/ADMIN@B
create emp_temp
USING SELECT * FROM EMP

30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST

Sql> host hostname
该命令在windows下可能被支持。

31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回

Linux 下是:!

Windows 是:$

sql>!
$hostname
$exit
sql>

该命令在windows下不被支持。

32.显示sql*plus命令的帮助
HELP
Sql>help index

33.显示sql*plus系统变量的值或sql*plus环境变量的值
SQL> help show

Shows the value of a SQL*Plus system variable, or the current

SQL*Plus environment. SHOW SGA requires a DBA privileged login.

SHO[W] option

where option represents one of the following terms or clauses:

system_variable

ALL

BTI[TLE]

ERR[ORS] [{FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER

| VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name]

LNO

PARAMETERS [parameter_name]

PNO

RECYC[LEBIN] [original_name]

REL[EASE]

REPF[OOTER]

REPH[EADER]

SGA

SPOO[L]

SQLCODE

TT[ITLE]

USER

SHOW SPOOL is not available in iSQL*Plus

13.1 . 显示当前环境变量的值:
Show all

13.2 . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。

13.3 . 显示初始化参数的值:
show PARAMETERS [parameter_name]

13.4 . 显示数据库的版本:
show REL[EASE]

13.5 . 显示SGA的大小
show SGA

13.6. 显示当前的用户名
show user

14.使用SQL*PLUS动态生成批量脚本

将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。

例1:生成一个脚本,删除SCOTT用户下的所有的表:

a. 创建gen_drop_table.sql文件,包含如下语句:

SPOOL d:/drop_table.sql
SELECT 'DROP TABLE '||
table_name ||';' FROM user_tables;
SPOOL OFF

b. 以SCOTT用户登录数据库:

SQLPLUS > @ d:/drop_table.sql

c. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示:

SQL>SELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;
'DROPTABLE'||TABLE_NAME||';'
-----------------------------
DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;
5 rows selected:

SQL> SPOOL OFF。

d. 对生成的drop_table.sql文件进行编辑去掉不必要的部分,只留下drop table …语句

e. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。SQLPLUS > @ c:dorp_table.sql。

在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的SQL语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。

a. 创建gen_drop_table.sql文件,包含如下语句:

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:drop_table.sql
SELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;
SPOOL OFF

b. 以SCOTT用户登录数据库:SQLPLUS > @ …..gen_dorp_table.sql。

c. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示:

DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;

d. 在scott用户下运行dorp_t:

able.sql文件,删除scott用户下所有的表。SQLPLUS > @ c:dorp_table.sql

例2.将一个表中的数据导出生成一个文本文件,列与列之间以”,”隔开:

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:drop_table.sql
select DEPTNO || ',' || DNAME FROM DEPT;
SPOOL OFF

将上面的内容保存为一个文本文件后,以scott登录,执行该文件后显示结果:

10,ACCOUNTING
20,RESEARCH
30,SALES
40,OPERATIONS

通过上面的两个例子,我们可以将:

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:/具体的文件名

你要运行的SQL语句SPOOL OFF。

作为一个模版,只要将必要的语句假如这个模版就可以了。

在oracle的较新版本中,还可以用set colsep命令来实现上面的功能:

SQL> set colsep ,
SQL> select * from dept;
10,ACCOUNTING ,NEW YORK
20,RESEARCH ,DALLAS
30,SALES ,CHICAGO
40,OPERATIONS ,BOSTON
35,aa ,bb

例3.动态生成spool命令所需的文件名。

在我们上面的例子中,spool命令所需要的文件名都是固定的。有时我们需要每天spool一次,并且每次spool的文件名都不相同,如文件名包含当天的日期,该如何实现呢?

column dat1 new_value filename;
select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual;
spool c:&&filename..txt
select * from dept;
spool off;

15.如何从脚本文件中得到WINDOWS环境变量的值:

在windos中:

spool c:/temp%ORACLE_SID%.txt
select * from dept;
...
spool off

在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt。

在UNIX中:

spool temp$ORACLE_SID.txt
select * from dept;
...
spool off

在上面的例子中,通过$ORACLE_SID的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt。

16.如何指定缺省的编辑脚本的目录:

在sql*plus中,可以用save命令,将上一条执行的sql语句保存到一个文件中,但是如何设置该文件的缺省目录呢?

通过SQL> set editfile c:/temp/file.sql 命令,可以设置其缺省目录为c:/tmp,缺省文件名为file.sql。

17.如何除去表中相同的行:

找到相同的行:

SELECT * FROM dept a
WHERE ROWID (SELECT MAX(ROWID)
FROM dept b
WHERE a.deptno = b.deptno
AND a.dname = b.dname
-- Make sure all columns are compared
AND a.loc = b.loc);

注释:

如果只找deptno列相同的行,上面的查询可以改为:

SELECT * FROM dept a
WHERE ROWID (SELECT MAX(ROWID)
FROM dept b
WHERE a.deptno = b.deptno)

删除相同的行:
DELETE FROM dept a
WHERE ROWID (SELECT MAX(ROWID
FROM dept b
WHERE a.deptno = b.deptno
AND a.dname = b.dname
-- Make sure all columns are compared
AND a.loc = b.loc);

注意:上面并不删除列值为null的行。

18.如何向数据库中插入两个单引号(’’):

Insert inot dept values(35,’aa’’’’bb’,’a’’b’);。

在插入时,用两个’表示一个’。

19.如何设置sql*plus的搜寻路径,这样在用@命令时,就不用输入文件的全路径。

设置SQLPATH环境变量。

如:SQLPATH = C:/ORANTDBS;C:/MYSCRIPTS

20.@与@@的区别是什么?

@等于start命令,用来运行一个SQL脚本文件。

@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。

@@用在脚本文件中,用来指定用@@执行的文件与@@所在的文件在同一目录,而不用指定全路径,也不从SQLPATH环境变量指定的路径中寻找文件,该命令一般用在嵌套脚本文件中。

21.&与&&的区别

&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。

&&用来创建一个持久变量,就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。当用&&命令引用这个变量时,不会每次遇到该变量就提示用户键入值,而只是在第一次遇到时提示一次。

如,将下面三行语句存为一个脚本文件,运行该脚本文件,会提示三次,让输入deptnoval的值:

select count(*) from emp
where deptno = &deptnoval;
select count(*) from emp
where deptno = &deptnoval;
select count(*) from emp
where deptno = &deptnoval;

将下面三行语句存为一个脚本文件,运行该脚本文件,则只会提示一次,让输入deptnoval的值:
select count(*) from emp
where deptno = &&deptnoval;
select count(*) from emp
where deptno = &d

Oracle sqlplus 常用命令总结的更多相关文章

  1. oracle sqlplus 常用命令大全

    show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> ...

  2. oracle sqlplus常用命令大全

    show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> ...

  3. oracle sqlplus常用命令

    登录到sqlplus sqlplus user/pwd@dbname 不登录使用 sqlplus /nolog 查看当前登录用户 show user; 更改用户密码 ALTER USER USER I ...

  4. Oracle手边常用命令及操作语句

    Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...

  5. sqlplus常用命令

    原文 sqlplus常用命令 desc 表名            显示表的结构 show user           显示当前连接用户 show error            显示错误 sho ...

  6. Oracle基本常用命令

    一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...

  7. Oracle教程-常用命令(二)

    oracle sql*plus常用命令 一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有cr ...

  8. ORACLE 11GR2常用命令

    一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...

  9. Oracle RAC常用命令

    Oracle Clusterware的命令集可以分为以下4种,其中用的最多的是crsctl和srvctl:节点层:osnodes olsnodes -n -i -s olsnodes -l -p 网络 ...

随机推荐

  1. 集合框架-LinkedHashSet集合(有序唯一)

    1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 im ...

  2. JavaScript如何实现上拉加载,下拉刷新?

    转载地址: 面试官:JavaScript如何实现上拉加载,下拉刷新? 一.前言 下拉刷新和上拉加载这两种交互方式通常出现在移动端中 本质上等同于PC网页中的分页,只是交互形式不同 开源社区也有很多优秀 ...

  3. VS Code拓展--Language Support for Java(TM) by Red Hat(1.3.0)

    Language Support for Java(TM) by Red Hat(1.3.0) 注意:版本问题,可能会有部分出入 功能目录 设置 java.home 作用: 指定用于启动 Java 语 ...

  4. 关于将px转换为vw vh的解决方案

    什么是vw(Viewport Width)和vh(Viewport Height)? vw和vh是前端开发中的一个动态单位,是一个相对于网页视口的单位. 系统会将视口的宽度和高度分为100份,1vw占 ...

  5. debian下编译安装redis并加入到systemd启动管理

    原文地址: http://blog.duhbb.com/2022/02/09/compile-and-install-redis-debian-and-add-to-systemd/ 欢迎访问我的个人 ...

  6. hihoCoder挑战赛1 毁灭者问题

    题目链接:http://hihocoder.com/problemset/problem/1034 数据结构题,由于每个魔法单位有着不同的回复速度和上限,所以不能根据吸收时间点进行查询和更新.但是如果 ...

  7. Python起航

    安装Python 安装python 添加python安装目录到PATH 添加Scripts目录到PATH 如果同时安装了python2和python3,那么通过python和python3,pip和p ...

  8. MySQL之视图篇

    MySQL之视图篇 文章目录 MySQL之视图篇 1. 概述 1.1 为什么使用视图? 1.2 视图的理解 2. 创建视图 2.1 创建单表视图 2.2 针对于多表 2.3 基于视图创建视图 3. 查 ...

  9. Docker 中的问题:”invalid reference format: repository name must be lowercase”

    在导入镜像的时候出现问题:invalid reference format: repository name must be lowercase 问题解决:镜像命名不能出现大写字母,将大写改为小写即可 ...

  10. charles模拟弱网

      Charles操作:延迟设置 >选择相应的网络延迟设置或者自定义延迟 >开启延迟即可,如图: