17,377
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE T1
( a VARCHAR2(10),
b NUMBER
);
CREATE TABLE T2
( a VARCHAR2(10),
b NUMBER
);
INSERT INTO T1 VALUES(NULL,'01');
INSERT INTO T1 VALUES(NULL,'02');
INSERT INTO T1 VALUES(NULL,'03');
INSERT INTO T2 VALUES('A','01');
INSERT INTO T2 VALUES('B','02');
INSERT INTO T2 VALUES('C','03');
DECLARE
t1_a T1.a%TYPE;
t1_b T1.b%TYPE;
CURSOR c1
IS
SELECT t2.a,t2.b FROM T2 INNER JOIN T1 ON T1.b=T2.b;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO t1_a,t1_b;
IF c1%FOUND THEN
UPDATE T1 SET a=t1_a WHERE b=t1_b;
DBMS_OUTPUT.PUT_LINE('已将T1表中a列更新为'||t1_a);
ELSE
DBMS_OUTPUT.PUT_LINE('已处理完结果集');
EXIT;
END IF;
END LOOP;
CLOSE c1;
END;
SQL> SELECT * FROM T1;
A B
---------- ----------
A 1
B 2
C 3