使用 TOAD/ORACLE 将脚本执行到输出文件时打印注释或语句

Hec*_*tor 2 oracle ssms toad

来自 SQL SSMS 环境,我想复制他们的Print命令,它允许您在执行查询时打印命令或变量。我正在寻找此功能来帮助在执行期间识别脚本的特定部分。

例如,我们有一个在晚上运行的 .sql 脚本,用于检查特定库存数字的差异。这些库存数字可以说是store_id1、2、3、4、5。

该脚本的每一个都附加了一个 select 语句store_id。我希望能够为1PRINT的 select 语句放置一个语句,Store_ID以便我可以看到 output.txt 文件并看到标题“ Store_id 1”然后是库存编号,然后看到标题“ Store_id 2”等...

在 MSSQL SSMS 中它会像这样

PRINT 'Searching Inventory Discrepancies at Store 1'
Select * from table1 where store_id = '1' etc...

PRINT 'Searching Inventory Discrepancies at Store 2'
Select * from table1 where store_id = '2' etc...
Run Code Online (Sandbox Code Playgroud)

如果我需要澄清请指教,谢谢!

Hec*_*tor 5

下面的语法允许您在查询之前或之后放置注释,以便注释显示在 output.txt 文件中:

BEGIN
    DBMS_OUTPUT.PUT_LINE('TEXT GOES HERE ');
END;
/
Run Code Online (Sandbox Code Playgroud)

您还应该发出SET SERVEROUTPUT ON以确保该PUT_LINE命令可以工作。

以下是您可以在DBMS_OUTPUT.PUT_LINE用于控制输出格式时使用的一些命令:

SET UNDERLINE OFF    
SET LINESIZE 32767    
SET PAGES 10000    
SET TRIMSPOOL ON    
SET TRIMOUT ON    
SET FEEDBACK OFF    
SET HEADING ON    
SET NEWPAGE 0    
SET HEADSEP OFF    
SET WRAP OFF    
SET TERMOUT OFF
Run Code Online (Sandbox Code Playgroud)

就我而言,我必须使用特定设置来允许我的输出停止自动换行并导致格式被丢弃。

SET LINESIZE 32767
SET HEADING ON
SET HEADSEP OFF
SET WRAP OFF
Run Code Online (Sandbox Code Playgroud)