刚写了个存储过程编译通不过不知道什么毛病!

jackjonse 2002-11-28 07:11:36
create or replace procedure des_update(
goodid in varchar2(20)) as

goods_name varchar2(80);
goods_specs varchar2(80);
begin
select goods_enname into goods_name from goods_dict when goods_id= goodid;
select specs into goods_specs from goods_dict when goods_id= goodid;
update contract_detail set description= goods_name+ goods_specs when goods_id= goodid;
end des_update;
/
请高手指点一下。
...全文
18 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackjonse 2002-11-29
  • 打赏
  • 举报
回复
o,如梦初醒,,,,,,,,,真他吗SB了。。。。。。。。。


bzszp 2002-11-29
  • 打赏
  • 举报
回复
select goods_enname into goods_name from goods_dict when goods_id= goodid;
....
你语句里面的when是什么?
应该是where吧
show err查看错误信息
jackjonse 2002-11-29
  • 打赏
  • 举报
回复
create or replace procedure des_update(
goodid in varchar2)
as
goods_name varchar2(80);
goods_specs varchar2(80);
begin
select goods_enname into goods_name from goods_dict when goods_id= goodid;
select specs into goods_specs from goods_dict when goods_id= goodid;
update contract_detail set description= goods_name||'/'||goods_specs when goods_id= goodid;
end des_update;
还是编译错误吗!!!!有调试工具吗?不知道错哪里啊!!!!
hutulaodao 2002-11-28
  • 打赏
  • 举报
回复
加了declare编译肯定通不过。
penitent 2002-11-28
  • 打赏
  • 举报
回复
create or replace procedure des_update(
goodid in varchar2)
as
goods_name varchar2(80);
goods_specs varchar2(80);
begin
select goods_enname into goods_name from goods_dict when goods_id= goodid;
select specs into goods_specs from goods_dict when goods_id= goodid;
update contract_detail set description=
goods_name ||'/'|| goods_specs --如果是字符型可以用||合并
when goods_id= goodid;
end des_update;
------------------
对了那个declare可以不要
jackjonse 2002-11-28
  • 打赏
  • 举报
回复
as后要一个declare

这是什么意思?as 后面不是跟变量名吗?

记录是唯一的,goods_id唯一。

还有,我要在goods_name+ goods_specs中间 加个 / 怎么加?
penitent 2002-11-28
  • 打赏
  • 举报
回复
1、in varchar2(20) --错误,不要指定宽度
2、as后要一个declare
3、保证select goods_enname into goods_name from goods_dict when goods_id= goodid;
select specs into goods_specs from goods_dict when goods_id= goodid;
只有一条记录,虽然没有编译错误,如果返回多行,执行则会异常

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧