在Oracle这样的存储过程怎么写?

cheng525jj 2006-03-06 05:12:26
insert into rooms(RoomRkey,roomlevel,total,roomprice,mansionrkey)
values('101','二等房','6','800','001')

select * from rooms where roomrkey = '101'

delete rooms where roomrkey = '101'

update rooms set roomlevel = '一等房',roomprice = '1200' where roomrkey = '101'
本人对Oracel的刚入门,请高手赐教
分别把上面4个SQL语句改为4个带参数的存储过程.
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng525jj 2006-03-07
  • 打赏
  • 举报
回复
楼主好像有错误啊!
难道真的没有人写过这样四个通用的存储过程吗?
whodxaje 2006-03-07
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE PROC_TEST

al varchar2,
a2 varchar2,
a3 varchar2,
a4 varchar2,
A5 varchar2

BEGIN
insert into rooms(RoomRkey,roomlevel,total,roomprice,mansionrkey)
values(A1,A2,A3,A4,A5) ;
END ;
cheng525jj 2006-03-07
  • 打赏
  • 举报
回复
楼主没有明白我意思,我想要的4个通用的存储过程,这样固定没意思.
CREATE OR REPLACE PROCEDURE PROC_TEST
BEGIN
insert into rooms(RoomRkey,roomlevel,total,roomprice,mansionrkey)
values('101','二等房','6','800','001') ;
END ;
比如:values('101','二等房','6','800','001') ;
values里面的值可以参数来代替那种类型,然后在程序对里面的参数进行赋值.
siteer0344 2006-03-07
  • 打赏
  • 举报
回复
www.source520.com 免费免注册80G源码书籍下载
hongqi162 2006-03-07
  • 打赏
  • 举报
回复
create or replace package sp_rooms
is
type rooms_row is ref cursor return rooms%rowtype;
procedure InsertRoom(ARoomRkey in Rooms.RoomRkey%Type,Aroomlevel in Rooms.roomlevel%Type,Atotal in Rooms.total%Type,Aroomprice in Rooms.roomprice%Type,Amansionrkey in Rooms.mansionrkey%Type);
procedure DeleteRoom(ARoomRkey in Rooms.RoomRkey%Type);
procedure GetRoomByID(ARoomRkey in Rooms.RoomRkey%Type,ResultData out sp_Rooms.rooms_row);
procedure UpdateRoom(ARoomRkey in Rooms.RoomRkey%Type,Aroomlevel in Rooms.roomlevel%Type,Atotal in Rooms.total%Type,Aroomprice in Rooms.roomprice%Type,Amansionrkey in Rooms.mansionrkey%Type);

end sp_rooms;

create or replace package body sp_rooms
is

procedure InsertRoom(ARoomRkey in Rooms.RoomRkey%Type,Aroomlevel in Rooms.roomlevel%Type,Atotal in Rooms.total%Type,Aroomprice in Rooms.roomprice%Type,Amansionrkey in Rooms.mansionrkey%Type)
is
begin
insert into InsertRoom values(ARoomRkey,Aroomlevel,Atotal,Aroomprice,Amansionrkey);
end InsertRoom;
procedure DeleteRoom(ARoomRkey in Rooms.RoomRkey%Type)
is
begin
delete from Rooms where RoomRKey=ARoomRKey;
end DeleteRoos;
procedure GetRoomByID(ARoomRkey in Rooms.RoomRkey%Type,ResultData out sp_Rooms.rooms_row)
is
begin
open ResultData for
select * from Rooms where RoomRKey=ARoomRKey;
end GetRoomByID;
procedure UpdateRoom(ARoomRkey in Rooms.RoomRkey%Type,Aroomlevel in Rooms.roomlevel%Type,Atotal in Rooms.total%Type,Aroomprice in Rooms.roomprice%Type,Amansionrkey in Rooms.mansionrkey%Type)
is
begin
update Rooms set RoomRkey=ARooms,roomlevel=Aroomlevel,total=total,roomprice=roomprice,mansionrkey=Amansionrkey
end UpdateRoom;

end sp_rooms;
whodxaje 2006-03-06
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE PROC_TEST
BEGIN
insert into rooms(RoomRkey,roomlevel,total,roomprice,mansionrkey)
values('101','二等房','6','800','001') ;

--select * from rooms where roomrkey = '101' 有啥用

delete rooms where roomrkey = '101';

update rooms set roomlevel = '一等房',roomprice = '1200' where roomrkey = '101';
END ;

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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