我的存储过程到底那里语法错了?急!!!

qiujin 2005-08-19 11:27:11
create or replace procedure manager(v_isbn in varchar2) as
v_title varchar2;
v_retail number;
begin
update books
set retail= retail*decode(upper(category),'COMPUTER',1.2,'COOKING',1.15,'LITERATURE',1.1,'SELF HELP',1.1,1.05)
WHERE isbn=v_isbn;
select title,retail into v_title,v_retail from books where isbn=v_isbn;
dbms_output.put_line('书名:'||v_title||' '||'价格:'||v_retail);
end;
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiujin 2005-08-19
  • 打赏
  • 举报
回复
谢谢,给分!
bzszp 2005-08-19
  • 打赏
  • 举报
回复
declare
visbn varchar2(20):='...';
vtitle varchar2(20);
vretail number;
begin
manager(visbn,vtitle,vretail);
dbms_output.put_line(vtitle||';'||vretail);
end;
/
qiujin 2005-08-19
  • 打赏
  • 举报
回复
感谢bzszp(SongZip) ,如果我的代码如下:
create or replace procedure manager(v_isbn in varchar2,v_title out varchar2 ,v_retail out number ) as
begin
update books
set retail= retail*decode(upper(category),'COMPUTER',1.2,'COOKING',1.15,'LITERATURE',1.1,'SELF HELP',1.1,1.05)
WHERE isbn=v_isbn;
select title,retail into v_title,v_retail from books where isbn=v_isbn;
dbms_output.put_line('title:'||v_title||' '||'retail'||v_retail);
end;
该如何调用它??
bzszp 2005-08-19
  • 打赏
  • 举报
回复
create or replace procedure manager(v_isbn in varchar2) as
v_title varchar2(10);
v_retail number;
begin
update books
set retail= retail*decode(upper(category),'COMPUTER',1.2,'COOKING',1.15,'LITERATURE',1.1,'SELF HELP',1.1,1.05)
WHERE isbn=v_isbn;
select title,retail into v_title,v_retail from books where isbn=v_isbn;
dbms_output.put_line('书名:'||v_title||' '||'价格:'||v_retail);
end;
/
qiujin 2005-08-19
  • 打赏
  • 举报
回复
sql plus提示如下错误:
警告: 创建的过程带有编译错误
qiujin 2005-08-19
  • 打赏
  • 举报
回复
category是图书分类
waterfirer 2005-08-19
  • 打赏
  • 举报
回复
v_title varchar2 指定长度
category是什么?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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