【发布时间】:2013-12-05 10:05:53
【问题描述】:
我是 PLSQL 的绝对初学者,但我一直被这个问题困扰:
我有一个功能:
FUNCTION fn_easy RETURN VARCHAR2 IS
BEGIN
RETURN 'This is a simple function';
END fn_easy;
我想在一个简单的 SQL 脚本中看到这个输出,但是这个代码:
set serveroutput on format wraped;
VAR retMsg VARCHAR2;
BEGIN
dbms_output.put_line('=================================================');
retMsg := pkg.fn_easy();
dbms_output.put_line('=================================================');
END;
print retMsg;
给我以下错误:
ORA-06550: Ligne 3, colonne 3 :
PLS-00201: identifier 'RETMSG' must be declared
ORA-06550: Ligne 3, colonne 3 :
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
【问题讨论】:
-
a) 要引用绑定变量,您需要输入冒号
:,后跟变量名,因此在您的PL/SQL 块中retMsg应该变为:retMsg; b) 当你在 SQL*PLUS 中声明varchar2数据类型的绑定变量并且没有指定它的最大大小时,大小默认为 1,所以你最好重新声明它,使其足够大以存储 @ 返回的987654328@函数值,否则会打ORA-06502错误。