执行存储过程,用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行。 展开
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行。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询