下面語(yǔ)句用于批量生成語(yǔ)句,生成后在sqlplus執(zhí)行select?'select?id,sum(result)?from?'||table_name||'?group?by?id;'?from?user_tables?where?table_name?like?'MRO_%_201702';
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供永濟(jì)網(wǎng)站建設(shè)、永濟(jì)做網(wǎng)站、永濟(jì)網(wǎng)站設(shè)計(jì)、永濟(jì)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、永濟(jì)企業(yè)網(wǎng)站模板建站服務(wù),10余年永濟(jì)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
逐一修改寫(xiě)個(gè)存儲(chǔ)過(guò)程吧。
話說(shuō)你能查出來(lái)就寫(xiě)個(gè)update就批量修改了,不用逐一修改吧。
declare
teacher_name varchar(20)------------跟teacher表中老師名字類型保持一致
cursor t_name is select teachername from teacher---------申明游標(biāo)t_name為從teacher表中查詢老師名字
begin
open t_name;------打開(kāi)游標(biāo)t_name
loop-------開(kāi)始循環(huán)(遍歷)
fetch t_name into teacher_name-------將老師名字值賦予變量teacher_name
if t_name%found-------------開(kāi)始遍歷有值時(shí)插入以下數(shù)據(jù)
then
select name,count(*) into new_table
from table_teacher_student
where name=teacher_name group by name-----將一個(gè)老師名字依據(jù)條件插入新表數(shù)據(jù)
else
dmbs_output.put_line(‘完成所有工作’);---------遍歷結(jié)束時(shí)輸出完成工作
exit;
end if;
end loop;
倉(cāng)促寫(xiě)下以上內(nèi)容,可能部分語(yǔ)法報(bào)錯(cuò),思路就是這樣,很基本的一個(gè)游標(biāo)使用。
數(shù)據(jù)庫(kù)中有user_tab_columns和user_tables這兩個(gè)表,你看看,可以解決的你問(wèn)題。腫么沒(méi)分
寫(xiě)個(gè)for循環(huán)就可以遍歷一遍,例如meminfo 表中有member_id 你現(xiàn)在有的id需要在meminfo 中查詢出現(xiàn)次數(shù)
declare
i number(5);
id number(15);
begin
for rec in(select member_id from meminfo) loop
if member_id=id
then i:=i+1;
end if;
end;
這樣就會(huì)遍歷一遍你的這個(gè)數(shù)據(jù)庫(kù)