dbms_output.put_line 不适用于类型变量

dbms_output.put_line not working for type variable

我正在研究 oracle 11g,并且是 oracle 的 PLSQL 部分的新手。 我正在尝试一个必须将输出作为 'King' 的程序,但由于某种原因 dbms_output.put_line 似乎不适用于类型变量。我尝试用一​​个普通的用户编号变量来检查它,以防万一看看是否有区别,它似乎工作正常。

感谢您的帮助。

您需要使用:

SET SERVEROUTPUT ON;

在 运行 匿名块之前告诉 SQL/Plus 客户端您希望它输出控制台。

MT0给了你答案:运行在你运行程序之前SQLPlus命令SET SERVEROUTPUT ON

从这里你应该明白了一些事情。

首先,这个问题与你变量的数据类型无关;如果您没有任何变量并且整个过程只是简单地打印硬编码字符串 'Hello World'.

,它同样适用

其次,重要的一点是 put_line 将“输出”写入内存缓冲区 - 而不是直接写入屏幕。您对缓冲区中的数据所做的操作不再是 PL/SQL,它是您的客户端软件(的一项任务)的功能,SQL 加上您的情况。 SET SERVEROUTPUT ON是一个SQLPlus命令,它指示SQLPlus从缓冲区中读取数据并显示在屏幕上。

您应该使用如下命令:

set server output on ;

之后你会看到输出。