/ / ऑरैकल में बड़ी क्वेरी का परिणाम कैसे अपडेट करें? - एसक्यूएल, ओरेकल

ओरेकल में बड़ी क्वेरी का परिणाम कैसे अपडेट करें? - एसक्यूएल, ओरेकल

क्या मैं आसानी से क्वेरी का परिणाम अपडेट कर सकता हूं?

मान लें कि मेरे पास बड़ी क्वेरी है जो वेतन कॉलम लौटाती है और मुझे इस क्वेरी परिणामों के आधार पर अद्यतन वेतन की आवश्यकता है।

आईडी- मेरी मेज के लिए प्राथमिक कुंजी है

अब मैं इसे इस तरह कर रहा हूं:

चरण 1

select id from mytable ...... where something

चरण 2

update mytable  set salary=1000 where id  in (select id from mytable ...... where something)

क्या आसानी से ऐसा करने का विकल्प मौजूद है?

उत्तर:

जवाब के लिए 0 № 1

प्रयत्न for update तथा current of। आपने कहा था कि आप "ग्रिड पर डेटा अपडेट करना" जैसे कुछ ढूंढ रहे हैं

create table my_table( id number, a varchar2(10), b varchar2(10));

insert into my_table select level, "a", "b" from dual connect by level <=10;

select * from my_table;

declare
rec my_table%rowtype;
cursor c_cursor is select * from my_table for update;
begin
open c_cursor;
loop
fetch c_cursor into rec;
exit when c_cursor%notfound;
if rec.id in (1,3,5) then
rec.a := rec.a||"x";
rec.b := rec.b||"+";

update my_table set row = rec where current of c_cursor;
else
delete from my_table where current of c_cursor;
end if;
end loop;
commit;
end;


select * from my_table;

जवाब के लिए 0 № 2

हां, आप सीधे परिणाम आसानी से अपडेट कर सकते हैं।

यहां उदाहरण है :

update
(
select salary from mytable ...... where something
) set salary=1000