求一个存储过程.存储过程的功能是:在表Temp1中插入一条记录.表Temp1的结构是PKID,UserName,UserQQ三个字段.存储过程要首先判断是否已经有相同的用户名了,如果有,不能插入,返回0,如果没有该用户名,则插入该记录.并且返回该用户的PKID.PKID是自动增加的标识符.我在Oracle中有一个aaa的序列.我写的存储过程是:
create or replace Insert_Ro(uname varchar2,uqq varchar2,flag out number)
as
tempname temp1.username%type;
begin
select username into tempname from temp1 where username=uname;
flag:=0;
exception
where NO_DATA_FOUND then
begin
insert into temp1 values(uname,uqq,aaa.nextval);
select aaa.currval into flag from dual;
end;
end Insert_Ro;
可是,插入时出现错误,请高手给个简单,并且容易理解的存储过程.谢谢了!
create or replace Insert_Ro(uname varchar2,uqq varchar2,flag out number)
as
tempname temp1.username%type;
begin
select username into tempname from temp1 where username=uname;
flag:=0;
exception
where NO_DATA_FOUND then
begin
insert into temp1 values(uname,uqq,aaa.nextval);
select aaa.currval into flag from dual;
end;
end Insert_Ro;
可是,插入时出现错误,请高手给个简单,并且容易理解的存储过程.谢谢了!
解决方案 »
- 求解,Oracle查询时,如何让特定的记录显示在最前面
- oracle数据快速入库的研究和实现 【大虾请进】
- 关于上传和下载 文件的大小 不一样的问题????十万火急!!!!!
- 刚学orcal 9i数据库,能提供点这方面的电子书么?
- js中对日期的操作处理
- 分区表上建普通索引
- 求教,我想从所有表中查一个数据怎么办?
- oracle 存储过程中怎么样把列名作为变量 进行查询
- 连接数据库时报错 ora-00604 和 ora-00018
- 我用sql创建的临时表怎么没有记录?(急)
- Oracle10g 插入20万条记录, 为什么不能正常显示出来?
- 请求各位Oracle高手帮我看看这个数据恢复的问题,急!!!
CREATE OR REPLACE PROCEDURE insert_ro (
uname VARCHAR2,
uqq VARCHAR2,
flag OUT NUMBER
)
AS
tempname temp1.username%TYPE;
v_count INTEGER;
BEGIN
v_count := 0; SELECT COUNT (username)
INTO v_count
FROM temp1
WHERE username = uname; IF v_count = 0
THEN
INSERT INTO temp1
VALUES (uname, uqq, aaa.NEXTVAL); flag := 1;
ELSE
flag := 0;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
NULL;
END insert_ro;
as
tempname temp1.username%type;
begin
select username into tempname from temp1 where username=uname;
flag:=0;
exception
where NO_DATA_FOUND then
begin
select aaa.nextval into flag from dual;
insert into temp1 values(uname,uqq,flag);
end;end Insert_Ro;