Oracle OpenQuery 函数对远程表执行 UPDATE、 INSERT, 或 DELETET示例 (不积跬步,无以至千里)
2014-09-03 14:25
585 查看
1、对远程表执行 UPDATE、 INSERT, 或 DELETET
update openquery(linked1, 'select ssn from testlinked where ssn=2')
set ssn=ssn + 1
insert openquery(linked1, 'select ssn from testlinked where 1=0') values (1000)
delete openquery(linked1, 'select ssn from testlinked where ssn>100')
SELECT @MachineID=MachineID from openquery(EHRORACLE,'select * from ATDTIMECARDMACHINE') where code=@DeviceNum
INSERT INTO OPENQUERY(EHRORACLE,'SELECT PERSONID,DataID,TIMECARDDATE,TIMECARDTIME,RECEIVEDATE,MACHINEID,DEPARTMENTID,DATAFROM,BUSINESSUNITID FROM ATDTIMECARDDATA')
SELECT @PersonID,newid(),@TIMECARDDATE,@TIMECARDTIME,convert(nvarchar(10),getdate(),120),@MachineID,@DEPARTMENTID,'1','0'
UPDATE OPENQUERY (EHRORACLE, 'SELECT * FROM ATDTIMECARDDATA ')
SET timecardtime='0'+left(Timecardtime,1)+':'+substring(timecardtime,charindex(':',timecardtime)+1,2)+':'+right(timecardtime,2)
WHERE charindex(':',left(Timecardtime,2))>0 and PERSONID=@PersonID and DEPARTMENTID=@DEPARTMENTID and cast(Left(TIMECARDDATE,10) as datetime)=cast(@TIMECARDDATE as datetime) and Left(TIMECARDTIME,5)=Left(@TIMECARDTIME,5)
and MachineID=@MachineID
2、使用 OpenQuery 动态执行
begin tran
SET QUOTED_IDENTIFIER OFF
SET XACT_ABORT ON
declare @cmd varchar(2500)
declare @cmd1 varchar(2500)
declare @var varchar(20)
set @var = 'White'
declare @var1 varchar(20)
set @var1 = 'White1'
declare @var2 varchar(20)
set @var2 = 'Johnson1'
select @cmd = "Update openquery(linked1,'select au_lname, au_fname from pubs.dbo.authors
where au_lname = ''" + @var + "''' )
set au_lname = '" + @var1 + "',
au_fname = '" + @var2 + "'"
exec ( @cmd )
commit tran
update openquery(linked1, 'select ssn from testlinked where ssn=2')
set ssn=ssn + 1
insert openquery(linked1, 'select ssn from testlinked where 1=0') values (1000)
delete openquery(linked1, 'select ssn from testlinked where ssn>100')
SELECT @MachineID=MachineID from openquery(EHRORACLE,'select * from ATDTIMECARDMACHINE') where code=@DeviceNum
INSERT INTO OPENQUERY(EHRORACLE,'SELECT PERSONID,DataID,TIMECARDDATE,TIMECARDTIME,RECEIVEDATE,MACHINEID,DEPARTMENTID,DATAFROM,BUSINESSUNITID FROM ATDTIMECARDDATA')
SELECT @PersonID,newid(),@TIMECARDDATE,@TIMECARDTIME,convert(nvarchar(10),getdate(),120),@MachineID,@DEPARTMENTID,'1','0'
UPDATE OPENQUERY (EHRORACLE, 'SELECT * FROM ATDTIMECARDDATA ')
SET timecardtime='0'+left(Timecardtime,1)+':'+substring(timecardtime,charindex(':',timecardtime)+1,2)+':'+right(timecardtime,2)
WHERE charindex(':',left(Timecardtime,2))>0 and PERSONID=@PersonID and DEPARTMENTID=@DEPARTMENTID and cast(Left(TIMECARDDATE,10) as datetime)=cast(@TIMECARDDATE as datetime) and Left(TIMECARDTIME,5)=Left(@TIMECARDTIME,5)
and MachineID=@MachineID
2、使用 OpenQuery 动态执行
begin tran
SET QUOTED_IDENTIFIER OFF
SET XACT_ABORT ON
declare @cmd varchar(2500)
declare @cmd1 varchar(2500)
declare @var varchar(20)
set @var = 'White'
declare @var1 varchar(20)
set @var1 = 'White1'
declare @var2 varchar(20)
set @var2 = 'Johnson1'
select @cmd = "Update openquery(linked1,'select au_lname, au_fname from pubs.dbo.authors
where au_lname = ''" + @var + "''' )
set au_lname = '" + @var1 + "',
au_fname = '" + @var2 + "'"
exec ( @cmd )
commit tran
相关文章推荐
- Oracle 执行带有out参数的存储过程(不积跬步,无以至千里)
- 用PL/SQL Developer 把oracle表里的数据导成insert语句(不积跬步,无以至千里)
- 利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语
- 1.利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间的对比结果
- Oracle cmd命令登录,执行sql脚本 (不积跬步,无以至千里)
- 利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语
- Oracle 左侧补齐函数lpad 函数 (不积跬步,无以至千里)
- Oracle ORA-12154: TNS:could not resolve the connect identifier specified(不积跬步,无以至千里)
- Oracle 数据库查询条件null和空字符串''的区别 (不积跬步,无以至千里)
- Oracle 一个用户直接访问另外个用户下的表 (不积跬步,无以至千里)
- Oracle 替代Sqlserver MASTER..SPT_VALUES 获取日期区间的所有日期 表结果集 (不积跬步,无以至千里)
- Oracle 递归查询 (不积跬步,无以至千里)
- Oracle Procedure 返回结果集和exists使用 (不积跬步,无以至千里)
- Oracle 的检测表栏位存在,再新增表栏位 (不积跬步,无以至千里)
- Oracle 表名,存储过程名字长度 不允许超过30 (不积跬步,无以至千里)
- Oracle rownum ORA-00923: 未找到要求的 FROM 关键字 (不积跬步,无以至千里)
- Oracle 获取某个日期为星期几的方法(不积跬步,无以至千里)
- Oracle 多表级联更新(不积跬步,无以至千里)
- Oracle Job的创建方法(不积跬步,无以至千里)
- Oracle 导出数据库(不积跬步,无以至千里)