显示SQL命令清单
SQL*Plus在称为SQL缓冲区的内存区域中存储最新发布的SQL命令。然而,SQL*Plus只能将最后发布的一条命令保存在缓冲区中。输入的每条新语句都将替换保存在缓冲区中的上一个语句。如果想要看到以前发布过的命令,则需要使用LIST命令,或者输入字母l。
SQL> l
如果你想在执行SQL脚本前浏览其内容,可使用GET命令将脚本从操作系统装载到SQL缓冲区中:
SQL> get status.sql
注意 如果只在SQL*Plus会话中输入斜杠(/)命令,将执行最后输入的一个命令,此命令总是存储在SQL缓冲区中。DBA应该经常使用LIST命令查看打算执行的脚本内容.
有时,可能需要连续执行几个SQL命令脚本。可以在一个主脚本中指定所有要运行的脚本,然后运行主脚本即可,所有被包含的脚本将连续执行。以下例子示岀如何将几个SQL脚本嵌入到主文件中:
SQL> GET onescript.sql
1 @check.sql
2 @create_table.sql
3 @insert_table.sql
4* @create_constraint.sql
当运行onescript.sql脚本时,其四个成员脚本将逐个运行。这是执行多脚本的有效方法,特别是在创建并填充一个新数据库时(假设已经测试了每个脚本)。
注解 还可以使用@@commandf11e表示法(如@@one_script.sql)执行包含多个命令文件的命令文件.
@@表示法的使用确保了Oracle以主命令文件相同的路径查找每个文件.
input:
插入和删除行
调用编辑器并在其中进行修改,能够增加或删除一行SQL文本。SQL*Plus界面也提供了増加和删除命令行的简单方法。使用INPUT命令,可以方便地给存储在SQL缓冲区中的SQL文本增加多个命令行。
要使用INPUT命令,输入字母I即可。代码清单4-15示出如何在一个SQL脚本的末尾的新行上插入文本。当插入完新行后,可以输入点号(.)返回到SQL提示符。
注解 分号(;)通常充当SQL语句的终止符,点号(.)是BLOCKTERMINATOR变量的默认值,它表示语句输入结束.
使用INPUT命令(i)在脚本末尾插入新命令行
SELECT username, status, process, sid, serial#
FROM v$session
WHERE status = 'ACTIVE'
.
SQL> i
and username ='HR';
如何在SQL脚本的中间插入一行。只要使用LIST命令在屏幕上显示一行,即可用INPUT命令在其后增加一新行。
使用INPUT命令在脚本中间插入一行
SELECT username, status, process, sid, serial#
FROM v$lsession
WHERE status='ACTIVE'
.
SQL> 1
1* SELECT username, status, process, sid, serial#
SQL> i
,logon_time,terminal
.
SQL> l
1 SELECT username, status, process, sid, serial#,
2 logon_time,terminal
3 FROM v$session
4* WHERE Status='ACTIVE'
可以使用删除命令DEL (或只输入D)及行号,删除SQL缓冲区的一行或多行。
在SQL*Plus中删除文本
SELECT username, status, process, sid, serial#
FROM vSsession
WHERE status = 'ACTIVE'
AND username'HR'
.
SQL> del4
SQL> l
1 SELECT username, status, process, sid, serial#
2 FROM vlsession
3* WHERE status ='ACTIVE'
DEL命令将删除指定的行。使用无行号的DEL命令将删除SQL缓冲区中的最后一行。




