成都网站建设设计

将想法与焦点和您一起共享

oracle中如何更新表,oracle 更新表

Oracle多表更新问题

可以用游标来执行更新,也可以用update语句更新。

目前成都创新互联已为近1000家的企业提供了网站建设、域名、雅安服务器托管网站运营、企业网站设计、瑞丽网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

但是oracle没有update from语句,可以用子查询来给源数据表的字段赋值,如果需要赋多个值的话,则用括号括起来,格式:

update table_name

set (field1, field2, ... ) = (select value1, value2, ... from source_table)

where ...

而where条件中则可以用exists测试是否要更新记录。更新语句大概这样:

update A s1

set a5 = (select b6 

from B s2 

where s2.b1 = s1.a1 and s2.b2 = s1.a2 and s2.b3 = s1.a3 and rownum = 1)

where exists (

select b6 

from B s2 

where s2.b1 = s1.a1 and s2.b2 = s1.a2 and s2.b3 = s1.a3 and rownum = 1

)

即赋值子句和where条件是类似的。

oracle 如何实现对单个表批量更新

看具体怎么更新了,一般语法是:

update 表名 set 字段='xxx' where 条件;

commit;

这个所有数据库基本一致,都是这个语法

oracle的表更新问题

先建立一个结构一模一样的表emp1,并为其插入部分数据

create table emp1

as

select * from emp where deptno = 20;

update掉emp1中的部分数据

update emp1

set sal = sal 100,

comm = nvl(comm,0) 50

然后我们试着使用emp1中数据来更新emp中sal 和 comm这两列数据。

我们可以这么写

Update emp

Set(sal,comm) = (select sal,comm. From emp1 where emp.empno = emp1.empno)

Where exists (select 1 from emp1 where emp1.empno = emp.empno)

请你尤其注意这里的where子句,你可以尝试不写where子句来执行以下这句话,你将会使得emp中的很多值变成空。

这是因为在oracle的update语句中如果不写where子句,oracle将会默认的把所有的值全部更新,即使你这里使用了子查询并且某在值并不能在子查询里找到,你就会想当然的以为,oracle或许将会跳过这些值吧,你错了,oracle将会把该行的值更新为空。

我们还还可以这么写:

update (select a.sal asal,b.sal bsal,a.comm acomm,

b.comm bcomm from emp a,emp1 b where a.empno = b.empno)

set asal = bsal,

acomm = bcomm;

这里的表是一个类视图。当然你执行时可能会遇到如下错误:

ERROR 位于第 2 行:

ORA-01779: 无法修改与非键值保存表对应的列

这是因为新建的表emp1还没有主键的缘故

下面增加一个主键

alter table emp1

add constraint pk_emp1 primary key (empno);

执行之后

在执行前面的语句就能成功。

这里我们总结一下:

在oracle中不存在update from结构,所以遇到需要从另外一个表来更新本表的值的问题的时候,有两种解决的办法:

一种是使用子查询,使用子查询时一定要注意where条件(一般后面接exists子句),除非两个表是一一对应的,否则where条件必不可少,遗漏掉where条件时可能会导致插入大量空值。

另外一种是类视图的更新方法,这也是oracle所独有的。先把对应的数据全部抽取出来,然后更新表一样更新数据,这里需要注意的是,必须保证表的数据唯一型。

在oracle怎样更新表中的数据

操作步骤如下:

准备数据:在excel中构造出需要的数据

2.将excel中的数据另存为文本文件(有制表符分隔的)

3.将新保存到文本文件中的数据导入到pl*sql中

在pl*sql中选择tools--text

importer,在出现的窗口中选择"Data

from

Textfile",然后再选择"Open

data

file",

在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data

from

textfile中显示将要导入的数据

4.在configuration中进行如下配置

注:如果不将"Name

in

header"勾选上会导致字段名也当做记录被导入到数据库中,从而导致数据错误

5.点击data

to

oracle,选择将要导入数据的表,并在fields中将文本中的字段与表中的字段进行关联

6.点击import按钮进行导入

7.查看导入的数据

OK,至此数据导入成功。


本文标题:oracle中如何更新表,oracle 更新表
转载源于:http://chengdu.cdxwcx.cn/article/dsdjjsh.html