上面讲述的意思你看了下面的例子就能完全明白了。把这个方式
SQL> select khid,mtname,mtjj from mt_kh t where t.khname='张诺';
KHID MTNAME MTJJ
---------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
216 中华网
476 中华网 中华网中国无线应用、互联网服务及网上游戏公司中华网科技公司(创业板代号:8006)为CDCCorporation(前称为chinadotcomcorporati
954 中华网
实现成:
SQL> select khid,mtname,mtjj from mt_kh t where t.khname='张诺';
KHID MTNAME NVL(MTJJ,'涓崕缃戜腑鍥芥棤绾
---------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
216 中华网 中华网中国无线应用、互联网服务及网上游戏公司中华网科技公司(创业板代号:8006)为CDCCorporation(前称为chinadotcomcorporati
476 中华网 中华网中国无线应用、互联网服务及网上游戏公司中华网科技公司(创业板代号:8006)为CDCCorporation(前称为chinadotcomcorporati
954 中华网 中华网中国无线应用、互联网服务及网上游戏公司中华网科技公司(创业板代号:8006)为CDCCorporation(前称为chinadotcomcorporati
SQL>
经过思考,此方式对不同列的处理,是不能直接来实现的,只能通过游标的方式来实现。因为此过程游标的方式来实现。实现方式为:
createorreplaceprocedure P_UPDATE_COL AS
v_mtname mt_kh.mtname%type;
v_khname mt_kh.khname%type;
v_mtjj mt_kh.mtjj%type;
cursor cur_f is
SELECTdistinct m1.mtname, m1.mtjj
FROM mt_kh m1
WHERE m1.mtjj isnotnull;
BEGIN
open cur_f;
loop
fetch cur_f
into v_mtname, v_mtjj;
EXITWHEN cur_f%NOTFOUND;
update mt_kh set mt_kh.mtjj = v_mtjj where mtname = v_mtname;
commit;
endloop;
close cur_f;
END P_UPDATE_COL;