为啥在PL/Sql程序运行时打印新旧值。?

Posted

技术标签:

【中文标题】为啥在PL/Sql程序运行时打印新旧值。?【英文标题】:Why new and old value print When Pl/Sql program run.?为什么在PL/Sql程序运行时打印新旧值。? 【发布时间】:2017-09-13 03:34:47 【问题描述】:

当我运行以下输出时。 宣布 输入数据 VARCHAR2(1024); 开始 输入数据 :='&&输入数据' ; Dbms_Output.put_line('输入的值是:' || inputData); 结尾; /

Enter value for inputdata: check
old   4:         inputData :='&&inputData' ;
new   4:         inputData :='check' ;
Value entered is:check

PL/SQL procedure successfully completed.

But i Want to know the reason why old and new value print.I know How to off it.
i just want to know reason.

【问题讨论】:

【参考方案1】:

您可以使用set verify off关闭新旧数值显示。希望下面的 sn-p 有所帮助。

SQL> SET VERIFY OFF;
SQL> set serveroutput on;
SQL> DECLARE
  2    inputData VARCHAR2(1024);
  3  BEGIN
  4    inputData :='&&inputData' ;
  5    Dbms_Output.put_line('Value entered is:' || inputData);
  6  END;
  7  /
Enter value for inputdata: test
Value entered is:test

PL/SQL procedure successfully completed.

SQL>

【讨论】:

我知道设置验证关闭。但我想知道显示新旧值的原因。 因为这正是verify 功能的用途!它允许您验证字符串替换是否已正确完成。如果您不想要它,请将其关闭。

以上是关于为啥在PL/Sql程序运行时打印新旧值。?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 PL/SQL Bulk DML 对具有父子约束表的大型数据集运行缓慢?

通过pl/sql计算程序的运行时间

为啥这个 PL/SQL 过程不起作用?

为啥 oracle 中的应用程序上下文使用 PL/SQL 过程

为啥有换行符时我的 PL/SQL 过程不能编译?

如何使用 pl sql 过程从结构仅在运行时知道的 oracle 表中动态获取数据?