但是能不能在SQL中更新ORACLE中的表数据呢,急,请高手指点
11 个解决方案
#1
貌似用连接服务器,只要权限够,能查询就能更新
#2
分配给你的用户没有更新的权限?
#3
..
#4
有没有人写过呀
查询好办呀
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
这样就行了
但是更新如何来做呢
查询好办呀
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
这样就行了
但是更新如何来做呢
#5
应该可以的,用链接服务器,或用openrowset,opendatasource都可以
示例:update a set a.aa='dkdk' from 链接服务器.数据库.所有者.表名
示例:update a set a.aa='dkdk' from 链接服务器.数据库.所有者.表名
#6
不过要有权限啊!
#7
try:
update opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
set ...
or
update a
set a.col=...
from (
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
) as a
update opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
set ...
or
update a
set a.col=...
from (
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
) as a
#8
应该看得懂吧!
二、使用语句链接ORACLE读取数据
1.使用sp_addlinkedserver添加链接服务器
EXEC sp_addlinkedserver
@server = 'SWFCJKXORACLE', --链接服务器名称,任意取名
@srvproduct = 'Oracle', --数据库服务产品
@provider = 'MSDAORA', --数据库服务提供者
@datasrc = '218.194.106.83/JKXORACL'--Oracle数据库连接字符串
2.使用sp_addlinkedsrvlogin为链接服务器添加Oracle用户名和密码
sp_addlinkedsrvlogin @rmtsrvname = 'SWFCJKXORACLE', --登录远程ORACLE链接服务器名
@useself = 'false',
@locallogin =null, --本地登录名
@rmtuser = 'STUD20050704100',--登录Oracle用户名
@rmtpassword = 'STUD20050704100' --登录Oracle密码
3.查询、操作Oracle数据
--查询ORACLE链接服务器中的数据库,注意使用:方案名.表名
--注:方案名即用户名、表名要使用大写,否则若表名区分大小写要加双引号。
select * from SWFCJKXORACLE..STUD20050704100.STUDINFO
select * from SWFCJKXORACLE.."STUD20050704100"."STUDINFO"
--执行删除
Delete From SWFCJKXORACLE.."STUD20050704100"."STUDINFO" WHERE StudNo=’20010704070’
--执行插入
Insert Into SWFCJKXORACLE.."STUD20050704100"."STUDINFO"
(StudNo,StudName,StudSex,StudBirthDay,ClassID)
VALUES
('20010505070','swfcsunboy','男','1982-1-1','20010505')
--与本地SQL Server数据表关联
select * from swfcjkxoracle.."STUD20050704100"."STUDINFO" S,STUDINFO SI
where S.STUDNO=SI.STUDNO
1 设置ORACLE链接服务器属性
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/swfcsunboy/archive/2007/10/23/1838459.aspx
#9
链接服务器可以,也可以用2005的同步oracle复制.
#10
应该是可以的,但是老是报错:
OLE DB 提供程序 'MSDAORA' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'LINE_ID' (compile-time ordinal 1) of object '"APPS"."XX"' was reported to have a DBTYPE of 130 at compile time and 5 at run time]。
OLE DB 提供程序 'MSDAORA' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'LINE_ID' (compile-time ordinal 1) of object '"APPS"."XX"' was reported to have a DBTYPE of 130 at compile time and 5 at run time]。
#11
学习。。
#1
貌似用连接服务器,只要权限够,能查询就能更新
#2
分配给你的用户没有更新的权限?
#3
..
#4
有没有人写过呀
查询好办呀
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
这样就行了
但是更新如何来做呢
查询好办呀
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
这样就行了
但是更新如何来做呢
#5
应该可以的,用链接服务器,或用openrowset,opendatasource都可以
示例:update a set a.aa='dkdk' from 链接服务器.数据库.所有者.表名
示例:update a set a.aa='dkdk' from 链接服务器.数据库.所有者.表名
#6
不过要有权限啊!
#7
try:
update opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
set ...
or
update a
set a.col=...
from (
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
) as a
update opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
set ...
or
update a
set a.col=...
from (
select *
From opendatasource('MSDAORA', 'Data Source=;User ID=;Password=).. APPS.XX
) as a
#8
应该看得懂吧!
二、使用语句链接ORACLE读取数据
1.使用sp_addlinkedserver添加链接服务器
EXEC sp_addlinkedserver
@server = 'SWFCJKXORACLE', --链接服务器名称,任意取名
@srvproduct = 'Oracle', --数据库服务产品
@provider = 'MSDAORA', --数据库服务提供者
@datasrc = '218.194.106.83/JKXORACL'--Oracle数据库连接字符串
2.使用sp_addlinkedsrvlogin为链接服务器添加Oracle用户名和密码
sp_addlinkedsrvlogin @rmtsrvname = 'SWFCJKXORACLE', --登录远程ORACLE链接服务器名
@useself = 'false',
@locallogin =null, --本地登录名
@rmtuser = 'STUD20050704100',--登录Oracle用户名
@rmtpassword = 'STUD20050704100' --登录Oracle密码
3.查询、操作Oracle数据
--查询ORACLE链接服务器中的数据库,注意使用:方案名.表名
--注:方案名即用户名、表名要使用大写,否则若表名区分大小写要加双引号。
select * from SWFCJKXORACLE..STUD20050704100.STUDINFO
select * from SWFCJKXORACLE.."STUD20050704100"."STUDINFO"
--执行删除
Delete From SWFCJKXORACLE.."STUD20050704100"."STUDINFO" WHERE StudNo=’20010704070’
--执行插入
Insert Into SWFCJKXORACLE.."STUD20050704100"."STUDINFO"
(StudNo,StudName,StudSex,StudBirthDay,ClassID)
VALUES
('20010505070','swfcsunboy','男','1982-1-1','20010505')
--与本地SQL Server数据表关联
select * from swfcjkxoracle.."STUD20050704100"."STUDINFO" S,STUDINFO SI
where S.STUDNO=SI.STUDNO
1 设置ORACLE链接服务器属性
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/swfcsunboy/archive/2007/10/23/1838459.aspx
#9
链接服务器可以,也可以用2005的同步oracle复制.
#10
应该是可以的,但是老是报错:
OLE DB 提供程序 'MSDAORA' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'LINE_ID' (compile-time ordinal 1) of object '"APPS"."XX"' was reported to have a DBTYPE of 130 at compile time and 5 at run time]。
OLE DB 提供程序 'MSDAORA' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'LINE_ID' (compile-time ordinal 1) of object '"APPS"."XX"' was reported to have a DBTYPE of 130 at compile time and 5 at run time]。
#11
学习。。