oracle存储过程(急) 本帖最后由 Rookie_CEO 于 2009-08-01 15:56:10 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 求助各位大侠 这是么的个问题啊 我是菜鸟 刚开始学oracle beginexec 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> set serveroutput onSQL> var sPrint varchar2(100);SQL> begin 2 insertStu('10210405514','Judy.K','female',sPrint 3 end; 4 5 print sPrint; 按回车 他就不停的换行啊 没有反应啊 这是么的个情况啊在浏览器上 怎么来执行它啊 谢谢你 这是 copy错误啊 实际代码 冇错啊... 这里的错误信息要充分分析,这里的错误有两处1. 第 3 行出现错误: exec insertStu('10210405512','judy.D','female',sPrint);2. 第 5 行, select sPrint from dual;下面再来解析错误的原因第一个,你定义的char类型,而这里你定义的是一个varchar2,这个肯定是不对的,不过至于他的错误提示,也不知道是不是由这个错误引起的,你修改一下类型可以试试看第二个错,首先 sqlplus里可以加入plsql的代码段,代码段结尾需要/然后回车所以你这里在end后,需要end/这样,才能让sqlplus知道上面的代码段已经结束,这是你第二个错的第一个问题,其次,你没有/ 所以 sqlplus把下面的select spring from dual;也作为plsql块里的部分,这里当然也错了。plsql里不能直接select 而不带into的。select 只能在sqlplus里使用,如果是在plsql里可以用dbms_output.put_line打出来。如下SQL>set serveroutput on;SQL>DECLARE sPrint char(100); 2 begin 3 exec insertStu('10210405512','judy.D','female',sPrint); 4 dbms_output.put_line(sPrint); 5 end 6 /这是一种方式,如果是在sqlplus里select出来就要改一改整个方式了,如小SQL>set serveroutput on;SQL>variable sprint char(100); SQL>begin insertStu('10210405512','judy.D','female', :sPrint); end; 2 /SQL>pring :sprint;这两种方式要注意对sprint的定义方式, 分别是变量和绑定变量。 挺一下,int 的分析很全面,UP 請問system登入orcl資料庫顯示 account is locked 关于分组查询的问题! 求推荐一本ORACLE学习书籍 oracle服务已启动怎么还找不到监听? oracle 备份 基础 存储过程是创建与使用临时表的问题? 我想做个能用到数据库的软件!大家给个意见 请教大家关于Oracle的一些问题? Pro*C 链接出错 oracle 9i 安装问题? 员工的成绩分为不合格,合格,一般。用1.2.3表示,现在要统计各成绩百分比,怎么写存储过程 pl/sql问题
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;加油,你的程序还有不少地方可以写的更好。
SQL> set serveroutput on
SQL> var sPrint varchar2(100);
SQL> begin
2 insertStu('10210405514','Judy.K','female',sPrint
3 end;
4
5 print sPrint; 按回车 他就不停的换行啊 没有反应啊 这是么的个情况啊在浏览器上 怎么来执行它啊 谢谢你
这里的错误信息要充分分析,这里的错误有两处
1. 第 3 行出现错误:
exec insertStu('10210405512','judy.D','female',sPrint);2. 第 5 行, select sPrint from dual;下面再来解析错误的原因
第一个,你定义的char类型,而这里你定义的是一个varchar2,这个肯定是不对的,不过至于他的错误提示,也不知道是不是由这个错误引起的,你修改一下类型可以试试看第二个错,首先 sqlplus里可以加入plsql的代码段,代码段结尾需要/然后回车
所以你这里在end后,需要
end
/这样,才能让sqlplus知道上面的代码段已经结束,这是你第二个错的第一个问题,其次,你没有/ 所以 sqlplus把下面的select spring from dual;也作为plsql块里的部分,这里当然也错了。plsql里不能直接select 而不带into的。select 只能在sqlplus里使用,如果是在plsql里可以用dbms_output.put_line打出来。如下SQL>set serveroutput on;
SQL>DECLARE sPrint char(100);
2 begin
3 exec insertStu('10210405512','judy.D','female',sPrint);
4 dbms_output.put_line(sPrint);
5 end
6 /这是一种方式,如果是在sqlplus里select出来就要改一改整个方式了,如小SQL>set serveroutput on;
SQL>variable sprint char(100);
SQL>begin insertStu('10210405512','judy.D','female', :sPrint); end;
2 /
SQL>pring :sprint;这两种方式要注意对sprint的定义方式, 分别是变量和绑定变量。
挺一下,int 的分析很全面,UP