当前位置: 代码迷 >> Oracle开发 >> oracle存储过程(急),该怎么解决
  详细解决方案

oracle存储过程(急),该怎么解决

热度:21   发布时间:2016-04-24 07:31:22.0
oracle存储过程(急)
无返回值的存储过程
SQL code
Create or Replace Procedure insertStu1(sid in char, sname in char, sex in char)asbegin--select sid into stuid from dual;insert into students(sutid,stuname,stusex) values(sid,sname,sex);end insertStu1;


有返回值的存储过程
SQL code
Create or Replace Procedure insertStu(sid in char, sname in char, sex in char,stuid out char)asbeginselect sid into stuid from dual;insert into students(sutid,stuname,stusex) values(sid,sname,sex);end insertStu;


问题如下:
SQL code
exec insertStu1('10210405513','judy.K','female');--执行无返回值的没有错误--执行有返回值的出错set serveroutput onDECLARE sPrint varchar2(100);beginexec insertStu('10210405512','judy.D','female',sPrint);endselect sPrint from dual;--错误如下:exec insertStu('10210405512','judy.D','female',sPrint);     *第 3 行出现错误: ORA-06550: 第 3 行, 第 6 列: PLS-00103: 出现符号 "INSERTSTU"在需要下列之一时: := . ( @ % ; 符号 ":=" 被替换为 "INSERTSTU" 后继续。 ORA-06550: 第 5 行, 第 1 列: PLS-00103: 出现符号 "SELECT"在需要下列之一时: ; <an identifier> <a double-quoted delimited-identifier> 






------解决方案--------------------
begin
exec insertStu('10210405512','judy.D','female',sPrint);
end


这里面不用写 “exec”这个了,另外,你的变量 sPrint 是定义在你的pl/sql块中的,在sql plus中是不存在的,所在直接打印是不可以的,正确做法应该是:

var sPrint varchar2(100);

begin
insertStu('10210405512','judy.D','female',sPrint);
end;

print sPrint;

加油,你的程序还有不少地方可以写的更好。
------解决方案--------------------
探讨
majy  兄弟  怎么没有反应 啊

SQL code
SQL>set serveroutputon
SQL>var sPrintvarchar2(100);
SQL>begin
2 insertStu('10210405514','Judy.K','female',sPrint3end;45print sPrint;

按回车 他就不停的换行啊 没有反应啊 这是么的个情况啊

在浏览器上 怎么来执行它啊 谢谢你

------解决方案--------------------
探讨

set serveroutput on
DECLARE sPrint varchar2(100);
begin
exec insertStu('10210405512','judy.D','female',sPrint);
end
select sPrint from dual;

第 3 行出现错误:
ORA-06550: 第 3 行, 第 6 列:
PLS-00103: 出现符号 "INSERTSTU"在需要下列之一时: := . ( @ % ;
符号 ":=" 被替换为 "INSERTSTU" 后继续。 ORA-06550:
第 5 行, 第 1 列:
PLS-00103: 出现符号 "SELECT"在需要下列之一时: ; <an
identifier>
<a double-quoted delimited-identifier>

  相关解决方案