在执行匿名块时如何打印值

时间:2019-01-31 20:54:12

标签: sql oracle plsql

我正在尝试此匿名块:

SET SERVEROUTOUT ON;
DECLARE
VAR_1:=1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Variable'||VAR_1);
VAR_1:=VAR_1+1;
EXIT WHEN VAR_1=10;
END LOOP;
END;
/

所以我希望系统在循环中而不是在块结束时打印我的消息(因为它在末尾打印所有消息)。

谢谢。

2 个答案:

答案 0 :(得分:0)

为变量添加数据类型

SET SERVEROUTOUT ON;
DECLARE
VAR_1 NUMBER :=1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Variable'||VAR_1);
VAR_1:=VAR_1+1;
EXIT WHEN VAR_1=10;
END LOOP;
END;

答案 1 :(得分:0)

我的回答与DBMS_OUTPUT无关,但是它将使您在应用程序运行时对其进行监视。签出DBMS_APPLICATION_INFO.SET_MODULE。它有两个参数。其中一个是module_name,它可以用来在您的匿名块上放置一个“标签”。第二个参数是action_name,它将使您将文本字符串与“标签”相关联。动作名称可以设置为您的“ “变量” || VAR_1 ”。您可以在循环中调用SET_MODULE。然后,在一个单独的会话中,您可以查询v $ session,其中包含使用SET_MODULE设置的MODULE和ACTION列。