Oracle 语句insert 到SQLServer 报错ORA-02025?各位前辈帮帮忙

[复制链接]
查看11 | 回复7 | 2017-3-27 08:04:23 | 显示全部楼层 |阅读模式
0、tab_attornstate@ds_fzcq这个是另外一台的SQLSERVER2005. 首先是通过Oracle的odbc与SQLServer2005进行链接。
1、执行select * from tab_attornstate@ds_fzcq这个正常
2、insert into tab_attornstate@ds_fzcq("id","ProState","Reason")
values('1','adsf','asdfasd');这样执行也正常。
3、insert into tab_state@ds_fzcq("id","ProState","Reason")
select a.id,b.note,b.note
from PTC_tZrbd a,txtdm b
where b.fldm='BDZT' and b.ibm=1 and a.ID=5
这样报错:ORA-02025:SQL 语句的所有表均必须在远程数据库中
各位前辈帮帮忙哦,非常感谢!
[ 本帖最后由 小小鱼儿yyc 于 2009-10-12 09:31 编辑 ]
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
此问题已解决:只先将select a.id,b.note,b.note
from PTC_tZrbd a,txtdm b
where b.fldm='BDZT' and b.ibm=1 and a.ID=5
中的a.id b.note的值传给两个变量A,B,再执行insert into
即:insert into tab_state@ds_fzcq("id","ProState","Reason")
values(A,B,B)
即可!
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
Thanks for posting back the solution.
It's always a good idea to tell us your Oracle version. See Metalink Notes 790572.1, 171790.1, and 317133.1. It may be very version-dependent. The recommended solution is to use SQL*Plus copy command. What you did works too. It needs a little programming.
Yong Huang
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
Oracle的版本是:10.2.0
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
原帖由 小小鱼儿yyc 于 2009-10-14 14:35 发表
此问题已解决:只先将select a.id,b.note,b.note
from PTC_tZrbd a,txtdm b
where b.fldm='BDZT' and b.ibm=1 and a.ID=5
中的a.id b.note的值传给两个变量A,B,再执行insert into
即:insert into tab_state@ds_fzcq("id","ProState","Reason")
values(A,B,B)
即可!

不明白,如何赋值给A,B变量?
是不是得先定义变量变量,然后SELECT INTO A,B FROM XXX ,再 insert into ?
若是这样,如何解决SELECT语句中,返回多条记录的问题?
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
看了ORACLE里的文档,原来是用FOR循环。换句话说,楼主的语句无法执行。
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
我的是用ORACLE连接EXCEL,也出现了同样的问题
我现在做了一个配置表,一个字段是EXCEL的SHEET名称,一个是SQL语句
现在是要执行SQL语句将数据都写入到EXCEL当中,遇到了DBLINK批量插入的问题
会报ORA-02025错误
如果用FOR循环的话,SQL中的字段数又是未知的,这样也不好用变量
请问是否有好的方法可以将数据库中数据都插入到EXCEL
回复

使用道具 举报

千问 | 2017-3-27 08:04:23 | 显示全部楼层
copy from test/test@orcl insertdept$@hrxl_link(dept_no,name) using select to_number(test1),to_char(test2) from test;
http://forums.oracle.com/forums/thread.jspa?messageID=1052070
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行