问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何循环更新oracle一列的值

发布网友 发布时间:2022-05-26 15:10

我来回答

5个回答

热心网友 时间:2023-10-23 15:23

哥们,不用循环吧?再说用循环也不能解决吧,循环你的值怎么赋?你怎么知道下个记录该更新成什么?
通过to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd')试试可不可转换,没环境没法试,不行的话用instr函数,一句update就行了,不过我现在没时间写代码,给你个思路
instr((logintime,'-',1)可以取出第一个-的位置,然后通过substr(logintime,1,instr((logintime,'-',1)-1)取出第一个-前面的部分,就是年,20||就行了,然后再用instr(logintime,'-',2)
--这个是第2个-的位置,知道第1、2个-的位置后还是通过substr取出第1个-和第2个-之间的字符,就是月,case when一下如果是1位就补个0,。。。。依次类推,麻烦是麻烦点,但是比较通用,能适应各种情况,不过日期的话应该有规律,应该能根据规律简化不少,你自己琢磨吧.
如果你非要用循环可通过rowid这个伪列,即定义一个参数做计数用,循环一次加1,直到等于max(rowid)为止,不过我实在想不出用循环怎么弄,期待高手。。。

热心网友 时间:2023-10-23 15:24

如何循环更新oracle一列的值
----运行下面过程的时候最好备份你的数据表,先用备份的数据表来测试转换是否有问题
----使用备份数据表测试只需把下面的表名修改成备份数据表名即可,
declare
cursor c_cur is
select * from uf_staffinformlogin for update of logintime;
v_logintime date;
begin
for i in c_cur loop
v_logintime:=to_date(i.logintime,'yy-mm-dd'); ---- 这里是一个字符串转时间类型的转换,你需要

热心网友 时间:2023-10-23 15:24

----运行下面过程的时候最好备份你的数据表,先用备份的数据表来测试转换是否有问题
----使用备份数据表测试只需把下面的表名修改成备份数据表名即可,
declare
cursor c_cur is
select * from uf_staffinformlogin for update of logintime;
v_logintime date;
begin
for i in c_cur loop
v_logintime:=to_date(i.logintime,'yy-mm-dd'); ---- 这里是一个字符串转时间类型的转换,你需要
----测试转换是否有问题,oracle可能把11转换成1911,我这里没有测试环境不能确定
update uf_staffinformlogin set logintime=to_char(v_logintime,'yyyy-mm-dd')
where current of c_cur; --这是基于游标的更新它会锁住你的logintime列,所以你要确定你的数据
----库在你更新的时候不会修改logintime列
end loop;
end;
2..你可以在执行上面语句之前查询下伪劣
select logintime,to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd') v_logintime from uf_staffinformlogin
是否有问题追问你好 能不能再说点详细点呢??

追答语句都给你写上面了,非常简单的语法,看不懂的话,我也不知道怎么在跟你说详细了
select logintime,to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd') v_logintime from uf_staffinformlogin
这条语句能够查询出你logintime 列的值和替换后生成的值,你可以查询下是否是你想要的答案
没错也可以不用,循环只是一个思路。
update uf_staffinformlogin set logintime =to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd')
直接更新全部表。
不过建议你更改的时候还是先备份下表
备份表uf_staffinformlogin_bak 你可以
create table uf_staffinformlogin_bak as select * from uf_staffinformlogin

热心网友 时间:2023-10-23 15:25

一句SQL语句,就可以全部更新完啦。没必要循环啊

不知道看了下面的SQL,是否能对你有些启发?

SQL> SELECT
2 TO_CHAR( TO_DATE('11-6-1', 'YY-MM-DD'), 'YYYY-MM-DD') A,
3 TO_CHAR( TO_DATE('11-6-21', 'YY-MM-DD'), 'YYYY-MM-DD') B,
4 TO_CHAR( TO_DATE('11-6-27', 'YY-MM-DD'), 'YYYY-MM-DD') C
5 FROM
6 al;

A B C
---------- ---------- ----------
2011-06-01 2011-06-21 2011-06-27

热心网友 时间:2023-10-23 15:26

update 表名 set 列名=更新值
这样就可以更新指定列的所有值了。
如何循环更新oracle一列的值

通过to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd')试试可不可转换,没环境没法试,不行的话用instr函数,一句update就行了,不过我现在没时间写代码,给你个思路 instr((logintime,'-',1)可以取出第一个-的位置,然后通过substr(logintime,1,instr((logintime,'-',1)-1)取出第...

oracle怎么修改一个字段的数据并递增

update emp set "number"=rownum ;commit;number是oracle关键字,所以加了引号,你要是实际表中不叫这个名字,可以不加引号的

oracle数据循环修改

使用游标取出数据,用一个数字变量进行计数,然后对数字求mod 3,为1的赋值a,2的赋值b,0的赋值c。假设表有主键id,要修改的列为value,部分代码如下:cnt := 0;for aa in (select id from tabxxx order by id) loop cnt:=cnt 1;if mod(cnt,3)=1 then update tabxxx set value='a' ...

oracle循环语句?

FOR循环则在指定范围内迭代。其语法如下:sql FOR 循环变量 IN 范围 LOOP 执行代码块;END LOOP;FOR循环的特性在于它可以自动处理迭代过程,无需手动定义循环次数或条件。使用FOR循环的指南包括明确循环变量的范围和类型,确保循环能够正常执行。代码示例如下:sql FOR i IN 1..10 LOOP dbms_output.put...

在oracle中怎么对一张表中的列进行循环,比如说,我执行第一个字段,再...

要对表中的字段进行遍历吗? 用user_tab_cols begin for i in (select column_name from user_tab_cols where table_name=upper('表名'))loop dbms_output.put_line(i.column_name);end loop;end;

怎么循环oracle的alter脚本

怎么循环oracle的alter脚本 CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1 [START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue [{MAXVALUE n | NOMAXVALUE}] //最大值 [{MINVALUE n | NOMINV...

oracle查询表用for in loop循环出来更新

1、查看当前用户使用的表空间情况,使用命令select * from user_users即可,其中username标识用户名,default_tablespace表示默认的表空间。2、查看oracle下面所有的表空间,使用命令select * from Dba_Tablespaces即可,呈现的信息包括表空间名称以及表空间的大小。3、表空间是非常重要的资源,如果我们想查看表...

怎么取得oracle数据库,下一个自动增长列的值

1、如创建一个序列:CREATE SEQUENCE emp_sequence --序列名INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10;2、然后执行下边语句:select emp_sequence.nextval from dual;3、结果:其中1就是下一个值,如果...

oracle 存储过程循环执行update语句

create or replace procedure P_Update(o_vc_message out varchar2)is type column1 is table of table1.column1%type index by binary_integer;col1s column1;type rid is table of rowid index by binary_integer;rids rid;temp table1.column1%type;begin select column1,rowid bulk collect ...

oracle存储过程怎么写循环

1、第一步,编写存储过程的整体结构,然后定义变量,见下图。2、其次,完成上述步骤后,在定义变量后定义游标,begin,select sysdate into v_date from dual,end test_proc,如下图所示。3、接着,完成上述步骤后,写一个for循环,游标开始for循环,为临时变量名任意起个名,输出一个字段,使用变量...

oracle更新某一列的值 oracle将两列的值合为一列 oracle实现for循环更新 oracle foreach循环 oracle修改某一列的值 oracle修改一列的所有值 oracle如何把两列值合并 oracle如何写循环 oracle多行一列值合并
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
骨髓炎中药处方 骨髓炎中药的治疗方法 夫妻孩子问题 关于孩子探视的问题解决 ...加工应税消费品,则委托加工物资的实际成本包括 委托外单位加工完成的存货其实际成本包括哪些 同程网上的机票价和机场的是一样的吗? 在机场买票最多能提前多少天... 什么情况需要查询征信 高分悬赏 质量效应2女性完美存档 用于导入到3中 jy03045101@sina.com... 【高分悬赏】PSP修改魔界战记2中文版存档为满金,全最终武器防具,有意... 有没有好一点的成人产品海外推广服务的公司? ORACLE 中 current 的用法和说明,谢谢!当他和 for update 一起用的作用 ! 仓鼠能不能吃有盐的饼干? 在SQL中用触发器编写:在插入和修改一行数据的时候自动的读出系统的时间并插入到该表的订购日期字段中。 显卡型号后都有LE,GT,GS,GTX等字母,是什么意思? 电脑操作SELECT*FROM ZY_CWSZ FOR UPDATE什么意思 仓鼠可不可以吃人类的饼干,比如盼盼,奶酪等,仓鼠要喝水吗?喝什么水? 利用游标来操纵数据时,所用的FOR UPDATE子句充分利用了事物的哪个特性(选择) 仓鼠可不可以吃蛋黄酥饼干? 电信的UIN卡装在手机去显示没有UIN卡,没有装反? 电信uin卡怎么升级为usin UI设计师用N卡还是A卡好? 仓鼠能不能吃华尔夫饼? 电信的UIN卡装在手机去显示没有UIN卡,没有装反。 三年级作文最声音 仓鼠可以吃好吃点饼干吗? 作文春天的声音怎么写 仓鼠可不可以吃奥利奥饼干? 仓鼠可以吃奥利奥吗? 广东天翼uin卡 高分!!! 并联电路中各个电阻内通过的电流相同 玛雅文化传播有限公司,可以做海外的推广吗? 请问并联电路的一条支路上,流过各个电阻的电流是相同的吗 current形式的updata语句,current是什么意思呢,这句话是啥意思 发现国外热销的一款产品,就是我们厂代工生产的,想找一家专业的跨境电商运营服务商? 在并联电路中,各支路通过的电流相同吗? 并联电路的各支路电流有可能相等吗?什么情况相等 在并联电路中各支路各支路的电流一定相等是对还是错 并联的两个元件电流方向一致吗 并联电路中各支路电流处处相等的原因 灯泡在串联并联电路中电压和电流各相同吗? 并联电路过电阻器与用电器的电流相等吗 在同一个电路中串联电路中的电流和并联电路中的电流相同吗? 台式机的耳机刚才用的好好地突然之间不响了是怎么回事啊? 求一篇谈谈美食的作文,普通点就行,不需要太多的比喻什么的,谢谢啦... 孩子们盼着过年,因为新年充满了喜庆。请写出一首描写新年情景的古诗。 怎么设置苹果蓝牙耳机 白带颜色有点发黄 是炎症么 09年司法考试报名条件?非法律专业可以? 什么是防喘振阀?