飞不高 发表于 2024-8-29 02:57:27

Oracle RUN列出并实验当前存储在SQL缓冲区中的SQL命令或PL/SQL块。

在SQLPlus中,当你输入一个SQL command 或者PL/SQL块(如匿名块、存储过程、函数或包体)并实验它后,SQLPlus会将该PL/SQL块保存在其缓冲区中。之后,如果你仅仅输入Run或一个斜杠(/)并按回车,SQLPlus会重新实验缓冲区中最后一条实验的PL/SQL块。这实际上是SQLPlus的一个便捷特性,用于快速重新实验之前的PL/SQL代码,而无需重新输入整个块。
参考官方文档地址
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqpug/RUN.html#GUID-C0504161-EFF9-4AF0-9F59-074F17B0CB85
1、语法Syntax

R
Lists and executes the SQL command or PL/SQL block currently stored in the SQL buffer.
列出并实验当前存储在SQL缓冲区中的SQL命令或PL/SQL块。
2、示例Examples

RUN causes the last line of the SQL buffer to become the current line.
The slash command (/) functions similarly to RUN, but does not list the command in the SQL buffer on your screen. The SQL buffer always contains the last SQL statement or PL/SQL block entered.
2.1 SQL statement

TESTUSER@FREEPDB1> select * from dept;

    DEPTNO DNAME                LOC
---------- -------------------- ------------------------------
      10 ACCOUNTING         NEW YORK
      20 RESEARCH             DALLAS
      30 SALES                CHICAGO
      40 OPERATIONS         BOSTON

TESTUSER@FREEPDB1> run
1* select * from dept

    DEPTNO DNAME                LOC
---------- -------------------- ------------------------------
      10 ACCOUNTING         NEW YORK
      20 RESEARCH             DALLAS
      30 SALES                CHICAGO
      40 OPERATIONS         BOSTON

TESTUSER@FREEPDB1> /

    DEPTNO DNAME                LOC
---------- -------------------- ------------------------------
      10 ACCOUNTING         NEW YORK
      20 RESEARCH             DALLAS
      30 SALES                CHICAGO
      40 OPERATIONS         BOSTON
2.2 PL/SQL block

TESTUSER@FREEPDB1> DECLARE i NUMBER;
2BEGIN
3      FOR i IN 1..5 LOOP
4          DBMS_OUTPUT.PUT_LINE('i的值为: ' || i);
5      END LOOP;
6END;
7/
i的值为: 1
i的值为: 2
i的值为: 3
i的值为: 4
i的值为: 5

PL/SQL procedure successfully completed.
-- 使用run
TESTUSER@FREEPDB1> run
1DECLARE i NUMBER;
2BEGIN
3      FOR i IN 1..5 LOOP
4          DBMS_OUTPUT.PUT_LINE('i的值为: ' || i);
5      END LOOP;
6* END;
i的值为: 1
i的值为: 2
i的值为: 3
i的值为: 4
i的值为: 5

PL/SQL procedure successfully completed.
-- 使用 /
TESTUSER@FREEPDB1> /
i的值为: 1
i的值为: 2
i的值为: 3
i的值为: 4
i的值为: 5

PL/SQL procedure successfully completed.

3、总结

RUN使SQL缓冲区的最后一次实验的SQL语句或PL/SQL(如匿名块、存储过程、函数或包体)成为当可以实验命令。
斜线命令(/)的功能雷同于RUN,但不会在屏幕上的SQL缓冲区中列出该命令。SQL缓冲区始终包含最后输入的SQL语句或PL/SQL块。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Oracle RUN列出并实验当前存储在SQL缓冲区中的SQL命令或PL/SQL块。