连接到 'Microsoft ODBC for Oracle}ORCL' 失败。

lshcsdn 2017-07-27 11:47:08
我要在access中执行的sql语句是
SELECT * into table111 FROM TB_559BS1GGUT0 IN ODBC[ODBC;Driver={Microsoft ODBC for Oracle};Server=ORCL;Uid=pde;PWD=pde;];
一执行就提示连接到 'Microsoft ODBC for Oracle}ORCL' 失败。数据源名称就是ORCL,系统DSN也是嫩连接成功的。请教各位大声,为什么sql执行语句时就连接失败。oracle11g的64,但是我的oracle客户端是32位的,这个有影响吗?
...全文
434 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lshcsdn 2017-08-03
  • 打赏
  • 举报
回复
引用 7 楼 tianfang 的回复:
建立两个连接,jdbc连接oracle读数据(表结构读不读?),jdbc-odbc连接access写数据(是否要创建表结构?) 第一个连接读取数据后,向第二个连接写数据。 你一直用连接access的连接去读oracle肯定不行
不好意思啊,我第一次发帖,以为按“不满意结帖”,可以自定义给分,结果没给成您分数,实在不好意思。
lshcsdn 2017-08-03
  • 打赏
  • 举报
回复
恩,我最后用了最土的办法,先去oracle取表结构和数据,然后写进access中。虽然不是想要的解答,但还是谢谢您哈。
tianfang 2017-08-01
  • 打赏
  • 举报
回复
建立两个连接,jdbc连接oracle读数据(表结构读不读?),jdbc-odbc连接access写数据(是否要创建表结构?) 第一个连接读取数据后,向第二个连接写数据。 你一直用连接access的连接去读oracle肯定不行
lshcsdn 2017-08-01
  • 打赏
  • 举报
回复
我是用java编程的,需求是将oracle11g中的表和数据转化成access中的表和数据,并以mdb格式导出,所以我在csdn的帖子里找到以下sql: String sql="SELECT * into table111 FROM TB_559BS1GGUT0 IN ODBC[ODBC;Driver={Microsoft ODBC for Oracle};Uid=pde;PWD=pde;Server=ORCL;];"; 先与access数据库建立连接,再执行以上sql,貌似是可以实现,只是我一直报连接是错误。
lshcsdn 2017-07-31
  • 打赏
  • 举报
回复
引用 3 楼 tianfang 的回复:
你的运行环境是Microsoft Office 中的Access吗? 和数据库的连接建立成功后,就不再写连接相关的东东,就是SQL中没有连接相关信息, String sql="SELECT * into table111 FROM TB_559BS1GGUT0 IN ODBC[ODBC;Driver={Microsoft ODBC for Oracle};Uid=pde;PWD=pde;Server=ORCL;];"; IN ODBC及后面都是多余的
如果想您说的这样,那如何在ACCESS中实现对oracle数据表的复制呢?
tianfang 2017-07-31
  • 打赏
  • 举报
回复
你想用什么语言来编写? java?access 的VBA?SQL?
lshcsdn 2017-07-28
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
别人成功的案例是使用VBA代码建立连接,再执行SQL指令 https://www.techonthenet.com/access/questions/oracle_connect.php 使用SQL,采用数据源模式,就是access已经连接好oracle数据库,只使用SQL命令即可。SQL中不处理连接 http://www.databasejournal.com/features/oracle/article.php/10893_3358411_2/Connecting-with-Oracle-Accessing-Oracle-via-Access-and-Excel.htm
感谢回复!我已经和ACCESS数据库建立了连接,想在access中执行以下SQL时,一直提示连接失败呢。。。
     //打开对mdb文件的jdbc-odbc连接
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
        String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+ savedMdbFilePathAndName.trim(); //, *.accdb

        connection = DriverManager.getConnection(database);  
        statement = connection.createStatement();   
        
        //执行特定sql语句
        String sql="SELECT * into table111 FROM TB_559BS1GGUT0 IN ODBC[ODBC;Driver={Microsoft ODBC for Oracle};Uid=pde;PWD=pde;Server=ORCL;];"; 

        statement.execute(sql);   
        
        //关闭连接
        statement.close();   
        connection.close(); 
顺便问您一下SQL中的table111 是不是access中的表名,TB_559BS1GGUT0 是oracle中的表名,我的理解有错吗?
tianfang 2017-07-28
  • 打赏
  • 举报
回复
你的运行环境是Microsoft Office 中的Access吗? 和数据库的连接建立成功后,就不再写连接相关的东东,就是SQL中没有连接相关信息, String sql="SELECT * into table111 FROM TB_559BS1GGUT0 IN ODBC[ODBC;Driver={Microsoft ODBC for Oracle};Uid=pde;PWD=pde;Server=ORCL;];"; IN ODBC及后面都是多余的
tianfang 2017-07-27
  • 打赏
  • 举报
回复
别人成功的案例是使用VBA代码建立连接,再执行SQL指令 https://www.techonthenet.com/access/questions/oracle_connect.php 使用SQL,采用数据源模式,就是access已经连接好oracle数据库,只使用SQL命令即可。SQL中不处理连接 http://www.databasejournal.com/features/oracle/article.php/10893_3358411_2/Connecting-with-Oracle-Accessing-Oracle-via-Access-and-Excel.htm

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧