Matlab 调用Oracle数据库
一 通过ODBC实现到oracle的连接
1)控制面板->管理工具->ODBC数据源->在系统DSN中添加oracle数据源;
2)matlab命令行中输入建立连接的命令:
conn_odbc = database('QUIK', ... %ODBC名称 'QUIK', ... %登录用户名 'QUIK') %登录密码
二 通过JDBC建立与oracle的连接,此处我使用的也是利用JDBC操作。
1)找到jdbc的驱动程序文件D:\oracle_app\lcm\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar,将其复制到
matlab安装目录的java子目录D:\Program Files\MATLAB\R2013a\java\jar\toolbox;
2)修改matlab的classpath文件:D:\Program Files\MATLAB\R2013a\toolbox\local\classpath.txt,在结尾添加一
行内容:
$matlabroot/java/jar/toolbox/ojdbc6.jar
3)matlab命令行中输入建立连接的命令:
conn_jdbc = database('QUIK', ... %数据库服务名 'QUIK', ... %登录用户名 'QUIK', ... %登录密码 'oracle.jdbc.driver.OracleDriver', ... %驱动名称 'jdbc:oracle:thin:@localhost:1521:') %连接字符串
通过ping命令查看连接状况:
ping(conn_odbc) ping(conn_jdbc)
%% Read data from Oracle
% Create a connection from Matlab to Oracle
% Oracle DataBase Connection Usage
% conn = database('DBname','UserName','UserPwd','oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@localhost:1521:');
% conn = database('AVM','m','m', 'oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@10.84.13.18:1521:');
% Execute query and get data from Oracle
curs = exec(conn, 'select * from mes_imp_operate_log d');
data = fetch(curs);
% Get number from Oracle
data = data.Data;
% Last Close Cursor
close(curs);
close(conn);
data
结果输出(和实际中一样的结果,结果存储类似矩阵):
2、我们执行一条Insert的ddl试试:
%% Read data from Oracle
% Create a connection from Matlab to Oracle
% Oracle DataBase Connection Usage
% conn = database('DBname','UserName','UserPwd','oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@localhost:1521:');
% 服务名记住要是Oracle实际中的,可能不是tns配置的
conn = database('A','mssd','mis', 'oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@10.80.10.13:1521:');
% Execute query and get data from Oracle
sql = 'INSERT INTO mes_imp_operate_log(id, create_time, user_id, operate_type, remark, trace_no)VALUES(mes_imp_operate_log_s.nextval, SYSDATE, 3, ''ss'', ''录入test'', ''test'' )';
curs1 = exec(conn, sql);
% Commit Or roolback Transction
%exec(conn_odbc, 'rollback');
exec(conn, 'commit');
curs = exec(conn, 'SELECT * FROM mes_imp_operate_log');
data = fetch(curs);
% Get number from Oracle
data = data.Data;
% Last Close Cursor
close(curs);
close(conn);
测试结果:
,将.m 文件打包成jar,Eclipse调用,可以参考:
Matlab 调用Oracle数据库的更多相关文章
- oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库
1.下载32位或64位oracle数据库并且安装,安装时可以选择安装数据库实例或者不安装,如果不安装的话之后可以用Database Configuration Assistant(DBCA) 通过向导 ...
- 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具
Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...
- 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】
http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...
- java调用oracle数据库发布WebService
package com.hyan.service; import java.io.FileInputStream;import java.sql.Connection;import java.sql. ...
- ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集
最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执 ...
- 关于Oracle数据库故障诊断基础架构
本节包含有关Oracle数据库故障诊断基础结构的背景信息.它包含以下主题: 故障诊断基础架构概述 关于事件和问题 故障诊断基础设施组件 自动诊断信息库的结构,内容和位置 故障诊断基础架构概述 故障诊断 ...
- 160316、实时处理oracle数据库中表的数据变化
http://blog.csdn.net/as339000204/article/details/45390727 近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是 ...
- 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】
疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
随机推荐
- 将 MRC 项目转换为 ARC 项目
其实很简单,直接使用系统工具转换即可,以下是步骤: 1. 你之前的项目是MRC的 2. 里面有 release, dealloc 等. 3. 开始转化 4. 点击save转化完后,记得把工程重新设置成 ...
- 解决hue报错:timed out (code THRIFTSOCKET): None
报错栈: [/Jun/ :: +] decorators ERROR error running <function execute at 0x7fba2804ecf8> Tracebac ...
- HostMonitor监控主机状态
HostMonitor 可以对windows和linux下的主机进行很多信息的监控,还提供web方式查看
- Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...
- [leetcode]Populating Next Right Pointers in Each Node II @ Python
原题地址:https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/ 题意: Follow up ...
- 搭建个人博客-hexo+github
自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备 - _-) 一.第一步 ...
- 盘点linux系统中的12条性能调优命令。
导读 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长期处于耗尽的状 ...
- Windows上使用“LogView”打开大文件
最近因为工作需要要打开一个300+MB的文件,试过了N个编辑器不是打不开就是软件直接挂掉或是占用内存太大,已经严重影响了我的工作 还好在网络上找到老外写的一个免费软件,官网上说是可以打开4G+的文件( ...
- COM中的几个基本概念
类厂 组件结构示例 DllGetClassObject COM库与类厂的交互
- 设置网站expires和max-age属性
转:http://www.zicheng.net/article/982022.htm 在使用百度站长工具测试网站优化建议时,在 设置静态内容缓存时间 栏目里,会提示 类似 FAILED - (未设置 ...