26

我正在使用 SQL Developer,并希望使用 DBMS_OUTPUT.PUT_LINE() 将变量的内容输出到控制台。我正在运行以下代码,将数字 1 到 5 相加,但我没有看到任何输出。

SET SERVEROUTPUT ON;
DECLARE 
n_counter NUMBER := 5; -- Substitute this variable
n_sum     NUMBER := 0;
BEGIN
  WHILE n_counter != 0
  LOOP
    n_sum := n_sum + n_counter;
    n_counter := n_counter -1;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE(n_sum);
END;

此外,您是否知道比极其密集的 Oracle PL/SQL 文档更好的故障排除资源?【类似Java SE7 API?】

4

1 回答 1

49

由于您使用的是 SQL Developer,因此您有几个选择。

在 SQL Developer 中,转到View | DBMS Output以确保 DBMS 输出窗口可见。在 DBMS 输出窗口中,选择“加号”图标并选择要向 DBMS 输出窗口写入数据的连接。然后使用右箭头(在 Windows 中为 Ctrl+Enter)在 SQL Worksheet 窗口中运行 PL/SQL 块。您将看到输出出现在 DBMS 输出窗口中。

或者,您可以将 SQL*PlusSET SERVEROUTPUT ON命令和 PL/SQL 块都放在 SQL 工作表中,并将其作为脚本运行(Windows 中的 F5)。这将在“脚本输出”窗口中的“匿名块已完成”消息的正下方显示输出。

注意:Oracle Sql Developer 中的 Dbms 输出不会在输出窗口中显示 null。它移动到一个新行,但在它返回除 null 之外的其他内容之前,您不会知道所有以前的 null 都在那里。

于 2012-04-14T01:14:34.103 回答