执行存储过程,用SQL*Plus和pl/sql Developer这两个工具 结果不同 30

下面这个存储过程,在SQL*Plus上面执行后提示“PL/SQL过程已成功完成。”,但是pl/sqlDeveloper这个工具则提示“ORA-06550:第5行,第0列:... 下面这个存储过程,在SQL*Plus上面执行后提示“PL/SQL 过程已成功完成。”,但是pl/sql Developer这个工具则提示“ORA-06550: 第 5 行, 第 0 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时: := ; not null default character”

输入“\”后回车提示:
ORA-06550: 第 3 行, 第 5 列:
PLS-00201: 必须说明标识符 'GLOBAL_VAR'
ORA-06550: 第 3 行, 第 5 列:
PL/SQL: Statement ignored
ORA-06550: 第 4 行, 第 26 列:
PLS-00201: 必须说明标识符 'GLOBAL_VAR'
ORA-06550: 第 4 行, 第 5 列:
PL/SQL: Statement ignored
ORA-06550: 第 14 行, 第 32 列:
PLS-00201: 必须说明标识符 'I_OUTER.GLOBAL_VAR'
ORA-06550: 第 14 行, 第 11 列:
PL/SQL: Statement ignored
ORA-06550: 第 26 行, 第 32 列:
PLS-00201: 必须说明标识符 'I_OUTER.GLOBAL_VAR'
ORA-06550: 第 26 行, 第 11 列:
PL/SQL: Statement ignored

代码如下:
<<I_Outer>>
DECLARE
global_var VARCHAR2(48);
BEGIN
global_var:='这是一个外部变量global_var';
Dbms_Output.put_line(global_var);
BEGIN --块1开始
DECLARE
var1 VARCHAR2(48);
global_var VARCHAR2(48);
BEGIN
var1:='第一个子块的内部变量var1';
global_var:='这是第一个子块的内部变量global_var';
DBMS_OUTPUT.put_line(var1);
DBMS_OUTPUT.put_line(global_var);
DBMS_OUTPUT.put_line(I_Outer.global_var);
END;
END;--块1结束
BEGIN--块2开始
DECLARE
var1 VARCHAR2(48);
global_var VARCHAR2(48);
BEGIN
var1:='第二个子块的内部变量var1';
global_var:='这是第二个子块的内部变量global_var';
Dbms_Output.put_line(var1);
Dbms_Output.put_line(global_var);
DBMS_OUTPUT.put_line(I_Outer.global_var);
END;
END;---块2结束
END;

我不知道是不是pl/sql Developer我运行存储过程地界面不对,问一下是在文件下的命令窗口中执行存储过程吗?
这应该是一段带名块吧?<<I_Outer>>是名字啊,我在新建的PL/SQL DEVELOPER的新建SQL窗口里面输入了这段带名块,依然提示错误。。

“ORA-06550: 第 4 行, 第 0 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时: := ; not null default character”

只不过错误行数由第5行变成了第4行。
展开
 我来答
百度网友c5f275c
2008-12-27 · TA获得超过1842个赞
知道小有建树答主
回答量:646
采纳率:50%
帮助的人:806万
展开全部
这只是一段PL/SQL,匿名的块,不是存储过程
你在PL/SQL DEVELOPER的新建SQL窗口里面,看看还报错不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式