
跨数据库更新表,可以用链接数据库模式
第一步:创建数据库链接:
create database link sync
connect to store identified by admin123 using 'db244';
sync是创建的链接名称, store是另一个数据库的用户名, admin123是另一个数据库的用户密码, db244是本地配置的指向另一个数据库的Oracle Net;
select from users@sync;
users是另一个数据库中的一张表。
第二步:更新本地表字段数据
update 本地表 set 字段名=(select 字段 from users@sync) where 条件
把查出来的数据做一个表g,arsc_status_cd as rsc_status
使用update g set grsc_status = '43'。
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
逻辑结构
它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。
百度百科-Oracle数据库
你大概是想用zJTQY表的值来更新t_cs_inhabitantrecord_new中的数据吧。在SQL Server等支持update from语句的数据中,直接用update from语句就可以实现,格式类似于:
update target_table
set target_field1 = update_value1, target_field2 = update_value2,
from reference_table
where update_conditions
但是,Oracle不支持update from语句,只能使用单个值更新,那么这样用:
update target_table
set (target_field1, target_field2, ) = (select value_1, value_2, from )
where update_conditions
这里,要set子句中的查询结果只能有一个记录。
用python更新oracle数据库:
1 要想使Python可以 *** 作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包:cx-oraclesourceforgenet/
2 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得technetwork/database/features/instant-client/index-097480html
找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装
$ sudo rpm -ivh oracle-instantclient112-basic-112030-1i386rpm
装完毕后还需要设置一下环境变量,如下
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/112/client/lib
然后写update语句对表进行更新:
import cx_Oracle //导入链接oracle的库
conn = cx_Oracleconnect('fkong/fkong@1721723129/orcl') //建立与orcl的连接
cursor = conncursor () //打开游标
cursorexecute ("update test set COL1='u' where ID=1") //执行更新
conncommit() //提交结果
cursorclose (); //关闭游标
connclose ();//关闭连接
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的。
update A set cou2 = (select B_cou1 from B where BB_name = Aname) where name in (select B_name from B where BB_name = Aname)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
甲骨文股份有限公司是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。
Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。
2016年1月,甲骨文表示会收购网站数据追踪服务商AddThis。2016年2月,甲骨文收购了云计算创业公司Ravello Systems。2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。
2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
20世纪约70年代一间名为Ampex的软件公司,为中央情报局设计一套名叫Oracle的数据库,埃里森是程序员之一。
以上就是关于oracle数据库中,想用一个表信息去更新另一个表,如果这两个表不是同一个数据库的,可以做到么全部的内容,包括:oracle数据库中,想用一个表信息去更新另一个表,如果这两个表不是同一个数据库的,可以做到么、Oracle数据库数据修改语句、在oracle数据库,想用多表连接更新数据,结果报错了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)