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 ;
之后你会看到输出。
我正在研究 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 ;
之后你会看到输出。