是否有T-SQL PRINT语句的Oracle等价物?我想显示脚本进度

Spe*_*van 6 oracle oracle11g

我搜索过但没有找到任何直接解决此问题的答案.我只是希望在执行执行多个操作的实现脚本时显示我已成功完成脚本块.

PRINT 'Start script'
PRINT 'Insert A'
    INSERT INTO Customers (CustomerName, City, Country)
    VALUES ('Cardinal', 'Stavanger', 'Norway');
PRINT 'Update B'
    UPDATE Customers
    SET ContactName='Alfred Schmidt', City='Hamburg'
    WHERE CustomerName='Alfreds Futterkiste';
PRINT 'End script'
Run Code Online (Sandbox Code Playgroud)

所以,完成后,输出应该类似于:

Start script
Insert A
4 rows inserted
Update B
1 row updated
End script
Run Code Online (Sandbox Code Playgroud)

Old*_*mer 2

对于 SQLPlus,有 PROMPT 命令。

句法:

PRO[MPT] [text]
Run Code Online (Sandbox Code Playgroud)

其中文本表示您要显示的消息文本。

将指定的消息或空行发送到用户的屏幕。如果省略文本,PROMPT 将在用户屏幕上显示一个空行。


用法:

您可以在脚本中使用此命令向用户提供信息。


例子:

以下示例显示了在名为 的脚本中PROMPT结合使用. 包含以下内容和命令:ACCEPTASKFORDEPT.SQLASKFORDEPT.SQLSQL*PlusSQL

PROMPT
PROMPT Please enter a valid department
PROMPT For example:  10
SELECT DEPARTMENT_NAME FROM EMP_DETAILS_VIEWWHERE DEPARTMENT_ID = &NEWDEPT
Run Code Online (Sandbox Code Playgroud)

假设您使用 START 或 @ 运行该文件:

@ASKFORDEPT.SQL VAL1
@HTTP://machine_name.domain:port/ASKFORDEPT.SQL VAL1
Run Code Online (Sandbox Code Playgroud)
Please enter a valid department
For example: 10
Department ID?>
Run Code Online (Sandbox Code Playgroud)

您可以根据提示输入部门编号Department ID?>&NEWDEPT默认情况下,SQL*Plus 列出包含替换前后的行,然后显示与Department ID?>提示符下输入的数字相对应的部门名称。您可以使用 SET VERIFY OFF 来防止这种行为。


请在此处阅读完整文档。