暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

zxrmhh 2024-09-11
80

在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

Term Description
n Lists line n.
n m Lists lines n through m.
n * Lists line n through the current line.
n LAST Lists line n through the current line.
* Lists the current line.
* n Lists the current line through line n.
* LAST Lists the current line through line n.
LAST Lists 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语句的输入,可以执行它的信号。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论