解决方案 »
- linux下安装oracle出现如下问题
- oracle中sql字符串的问题
- 求救!!!!!!!!急啊,大侠帮忙啊
- 有关从SAP的Oracle数据库抽取数据问题,急!
- oracle初学者的问题
- 刚刚作好一个:ORACLE的函数,作用:取汉字拼音码首字母。有需要的朋友请进。
- Oracle Managment Server 不能登录的问题?
- 请问如何用触发器删除当前被修改过的记录???
- [求助]在线求助“数据导入的问题”?
- ***想学用点Oracle,请教几个初级问题,Help Me!***
- 怎样用Sql语句做到,当使用一个用户登录到Oracle后,只显示属于他的表空间和表?
- oracle 安装时网络问题
如
create or replace procedure sp_update(A in table.pkid%type)
is
--定义变量和游标
rs table.b%type;
cursor cur is select b from table where pkid=A for update;
begin
open cur;
loop
fetch cur into rs;
exit when cur%notfound;
if rs.b =1 then
Update table Set B=2 where current of cur;
end if;
end loop;
close cur;
end sp_update;
--你是要根据参数A查询出的字段B全部是1才将其更新为2还是什么哦?需求有点模糊
--
create or replace procedure sp_update(A in table.pkid%type)
is
--定义变量
cnt number;
begin
select count(*) into cnt from table where pkid=A and b!=1;
if cnt=0 THEN --cnt=0说明字段B全部是1
update table Set B=2 ; --这里看你是全表更新还是只更新where pkid=A
end;
end sp_update;
TYPE T IS TABLE OF table1.pkid%TYPE;
T1 T;
BEGIN
SELECT B BULK COLLECT
INTO T1
FROM TABLE1
WHERE PKID = A;
FOR I IN 1 .. T1.COUNT
LOOP
IF T1(I) = 1 THEN
UPDATE TABLE1
SET B = 2;
END IF;
COMMIT;
END LOOP;END;
create or replace procedure sp_update(A in table.pkid%type)
is
--定义变量
cnt number;
begin
select count(*) into cnt from table where pkid=A and b!=1;
if cnt=0 then --cnt=0说明字段B全部是1
update 表2 set 字段=2 where 字段2=A ;
end if;
end sp_update;
TYPE T IS TABLE OF table1.pkid%TYPE;
T1 T;
BEGIN
SELECT B BULK COLLECT
INTO T1
FROM TABLE1
WHERE PKID = A;
FOR I IN 1 .. T1.COUNT
LOOP
IF T1(I) = 1 THEN
UPDATE TABLE1
SET B = 2
WHERE PKID=A;--添加更新条件
END IF;
COMMIT;
END LOOP;END;