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中
解决方案 »
- 执行完毕, 但带有警告
- sql 执行计划 view是什么意思啊
- Oracle定时导出到文本
- Oracle如何使用游标对数据进行修改,删除操作呢?
- 求助,哪位好心的GG帮我把下面的这个SQL Server的存储过程变成Oracle的?谢谢先!!!!!!!!
- 能建这样的视图吗
- 一个oracle查询的sql语句的写法,给出正确答案者另给100分
- TNS-12541:TNS:无监听器(help me,help...(绝望))
- 求助:消费明细表更新余额触发器
- linux 安装的oracle11g没有sqlldr客户端如何解决,谢谢
- 急急急!在ORACLE中怎样判断新的一天的到来?
- 关于会话级临时表的问题。
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语法我不太会
请高手帮忙啊