SELECT * INTO TABLE TEMP3 WHERE WZH=num1 AND ROWNUM=1; 选取一条记录取出里面已经存的字段,形成临时表
UPDATE TEMP3 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20); 修改特定字段
INSERT TEMP3 INTO CS;
将修改后的字段插入到原来的表格cs中
UPDATE TEMP3 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20); 修改特定字段
INSERT TEMP3 INTO CS;
将修改后的字段插入到原来的表格cs中
wzh char(5)
jcsz number(5)
jcyqbh char(10)
jcrq date
dygd char(20)
sbgxlb char(20)
sbgxxh char(20)
sccj char(30)
zyjz char(10)
jzyz number(4,2)
gywd number(4)
gyyl number(5,2)
bjnd number(2)
wd number(2)
sd number(2)
qy number(4,1)
fs number(4,2)
wxyy char(30)
wxff char(30)
wxrq date
jcry char(8)
bz char(50)
现在其他的不用管,随便取出某一个wzh的记录,然后修改里面的jcsz和jcrq这两个字段,然后将其作为新记录插入到表中,就ok了。jcsz随机产生,jcrq(检测日期)是上面说的那六个日期中的一个,最终对每一个wzh(位置号),都有6个日期,6次记录
这样就一切ok了
我不太熟pl/sql所以上面的的程序可能有些错误,所以请各位高手指教,谢谢各位了!!!
num1 integer:=0;
num2 integer:=0;
jcrqnum DATE;
begin
FOR i IN 0..90000 LOOP
num1:=i;
IF i IN (SELECT DISTINCT WZH FROM CS) THEN
SELECT COUNT(*) INTO num2 FROM CS WHERE WZH=num1;
FOR i1 IN 1..num2 LOOP
SELECT JCRQ INTO jcrqnum FROM CS WHERE WZH=num1 AND ROWNUM=i1;
IF NOT jcrqnum>=to_date('20031014','yyyymmdd') AND jcrqnum<=to_date('20031022','yyyymmdd') THEN
SELECT * INTO TABLE TEMP1 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP1 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP1 INTO CS;
END IF; IF NOT jcrqnum>=to_date('20031208','yyyymmdd') AND jcrqnum<=to_date('20031212','yyyymmdd') THEN
SELECT * INTO TABLE TEMP2 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP2 SET JCRQ=to_date('20031208','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP2 INTO CS;
END IF; IF NOT jcrqnum>=to_date('20040210','yyyymmdd') AND jcrqnum<=to_date('20040225','yyyymmdd') THEN
SELECT * INTO TABLE TEMP3 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP3 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP3 INTO CS;
END IF;
IF NOT jcrqnum>=to_date('20040413','yyyymmdd') AND jcrqnum<=to_date('20040425','yyyymmdd') THEN
SELECT * INTO TABLE TEMP4 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP4 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP4 INTO CS;
END IF
IF NOT jcrqnum>=to_date('20040608','yyyymmdd') AND jcrqnum<=to_date('20040613','yyyymmdd') THEN
SELECT * INTO TABLE TEMP5 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP5 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP5 INTO CS;
END IF; IF NOT jcrqnum>=to_date('20041202','yyyymmdd') AND jcrqnum<=to_date('20041208','yyyymmdd') THEN
SELECT * INTO TABLE TEMP6 WHERE WZH=num1 AND ROWNUM=1;
UPDATE TEMP6 SET JCRQ=to_date('20031014','yyyymmdd'),jcsz=DBMS_radom.value(1,20);
INSERT TEMP6 INTO CS;
END IF;
END FOR;
END IF;
END FOR;
END;
就是具体实现方法有些问题
pl/sql语法我不太会
请高手帮忙啊