类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我本地 sql server
远方 Oracle
insert into LINKVIPDB..FUNDWEB.USERREGISTER ( USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE )VALUES ( 3,b,a,Y,NULL )
Select * From OPENQUERY (vipdb,select USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE FROM FUNDWEB.USERREGISTER )
OK
但是 :
insert into OPENQUERY (vipdb,select USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE FROM FUNDWEB.USERREGISTER )
VALUES ( 5,C,a,Y,Null )
报错:
仅可以为插入 long 列的 long 值赋值
是什么原因呢?
网友回答:
可能是插入的數據類型與表的數據類型不一致吧﹖
insert into LINKVIPDB..FUNDWEB.USERREGISTER ( USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE )VALUES ( 3,b,a,Y,NULL )
OK,这个不能说明什么吧? 只能说明插入数据到链接服务器LINKVIPDB是成功的
与插入链接服务器 vipdb 不成功没有联系啊
这几个USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE字段里面是不是有long类型的字段?
insert into OPENQUERY (vipdb,select USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE FROM FUNDWEB.USERREGISTER )
VALUES ( 5,C,a,Y,Null )
--能这样插入吗?OPENQUERY 只能用于查询吧?
OPENQUERY --打开查询
我上面说错了。(两种办法都可以实现拖入)
为什么你的前后的连接服务器名不同: LINKVIPDB和vipdb
你第一次是向linkvipdb链接服务器内的表插入成功,但查询的是vipdb链接服务器内的表
第二次是向vipdb内的表插入,
这两个不同吧。
--你试试这样看看能否可以
insert into OPENQUERY (vipdb,select * FROM FUNDWEB.USERREGISTER )(USERID,USERNAME,PASSWORD,NEEDCHG,CHGDATE)
VALUES ( 5,C,a,Y,Null )
insert into LINKVIPDB..FUNDWEB.USERREGISTER --这是直接的对象引用
insert into OPENQUERY ... --这是查询方式的引用,有可能会改变数据类型
看来似乎没有直接解决的办法了,改类型或直接用链接服务器
用openquery的参数只能是查询语句,似乎没有什么办法好想.
其实都可以用那两种方式进行插入数据的,
楼主先试一下在同一链接服务器下用上面两种方式进行插入试试,看可不可行