Oracle List 列出SQL缓冲区的一行或多行

在Oracle的SQL*Plus环境中,LIST命令用于显示当前缓冲区(也就是你正在输入或已经输入的SQL命令)中的内容。这在你需要查看或修改已经输入的SQL语句时非常有用。

LIST命令的基本用法非常简单。如果你只是输入LIST而不带任何参数,它会显示从缓冲区开始到当前光标位置的所有内容。你也可以使用LIST n来显示缓冲区中从第n行开始的内容,或者LIST m n来显示从第m行到第n行的内容。但是,你提到的;符号并不是LIST命令的一部分或其直接用法。

然而,在SQLPlus中,;(分号)用作SQL语句的结束符。当你输入了一个SQL语句并按下分号后,SQLPlus会尝试执行该语句。如果你的意图是在使用LIST命令查看语句时注意到语句以;结束,那么这只是因为该语句在之前已经被完整地输入并准备执行。

1、Syntax 语法

L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]

Lists one or more lines of the SQL buffer.
列出SQL缓冲区的一行或多行。

In SQLPlus command-line you can also use “;” to list all the lines in the SQL buffer.
在SQL
Plus命令行中,您还可以使用“;”列出SQL缓冲区中的所有行。

2、Term

TermDescription
nLists line n.
n mLists lines n through m.
n *Lists line n through the current line.
n LASTLists line n through the current line.
*Lists the current line.
* nLists the current line through line n.
* LASTLists the current line through line n.
LASTLists the current line through line n.

Enter LIST with no clauses, or “;” to list all lines. The last line listed becomes the new current line (marked by an asterisk).

3、Examples

3.1、To list the contents of the buffer, enter

TESTUSER@FREEPDB1> SELECT table_name, comments
  2  FROM user_tab_comments
  3  WHERE table_name = 'EMPLOYEES';

TABLE_NAME							COMMENTS
---------------------------------   ----------------------------
EMPLOYEES							雇员信息

TESTUSER@FREEPDB1> list;
  1  SELECT table_name, comments
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'

or enter

TESTUSER@FREEPDB1> ;
  1  SELECT table_name, comments
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'

OR list 1 3 已知SQL执行的所有行数时

TESTUSER@FREEPDB1> list 1 3
  1  SELECT table_name, comments
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'

The asterisk indicates that line 3 is the current line.
星号表示第3行是当前行。

3.2、要仅列出第二行,请输入

To list the second line only, enter

TESTUSER@FREEPDB1> list 2
  2* FROM user_tab_comments

3.3、要从当前行(现在是第2行)到最后一行列出,请输入

To list from the current line (now line 2) to the last line, enter

TESTUSER@FREEPDB1> list * last
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'

注意此步是紧接着上一步3.2执行的结果,如果current line不同,则list * last结果也不同,如下:

TESTUSER@FREEPDB1> list;
  1  SELECT table_name, comments
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'
  
TESTUSER@FREEPDB1> list * last
  3* WHERE table_name = 'EMPLOYEES'

TESTUSER@FREEPDB1> list 2
  2* FROM user_tab_comments
  
TESTUSER@FREEPDB1> list * 2
  2* FROM user_tab_comments

TESTUSER@FREEPDB1> list * 3
  2  FROM user_tab_comments
  3* WHERE table_name = 'EMPLOYEES'
 
TESTUSER@FREEPDB1> list *
  3* WHERE table_name = 'EMPLOYEES'

充分理解星号表示第几行是当前行。

4、分号的作用:

当你看到语句末尾的;时,这仅表示该语句已经结束,并可以被SQL*Plus执行。LIST命令与;的使用是独立的。

总结

记住,LIST命令仅在你正在与SQLPlus进行交互时使用,用于查看或编辑缓冲区中的SQL语句。而;则是你告诉SQLPlus你已经完成了SQL语句的输入,可以执行它的信号。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值