oracle数据库中,想用一个表信息去更新另一个表,如果这两个表不是同一个数据库的,可以做到么

oracle数据库中,想用一个表信息去更新另一个表,如果这两个表不是同一个数据库的,可以做到么,第1张

数据更新表,可以用链接数据库模式

第一步:创建数据库链接:

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数据库,想用多表连接更新数据,结果报错了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9876290.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存