本文分两部分,1、通过sql语句操作数据库。2、通过ddl操作数据库

一 通过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)
1、数据库实际查询操作

%% 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);

测试结果:
 


 
Java程序调用matlab
,将.m 文件打包成jar,Eclipse调用,可以参考:
 
谢谢阅读!
分享是美德!
分享共进步!

Matlab 调用Oracle数据库的更多相关文章

  1. oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库

    1.下载32位或64位oracle数据库并且安装,安装时可以选择安装数据库实例或者不安装,如果不安装的话之后可以用Database Configuration Assistant(DBCA) 通过向导 ...

  2. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具

    Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...

  3. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】

    http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...

  4. java调用oracle数据库发布WebService

    package com.hyan.service; import java.io.FileInputStream;import java.sql.Connection;import java.sql. ...

  5. ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集

    最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执 ...

  6. 关于Oracle数据库故障诊断基础架构

    本节包含有关Oracle数据库故障诊断基础结构的背景信息.它包含以下主题: 故障诊断基础架构概述 关于事件和问题 故障诊断基础设施组件 自动诊断信息库的结构,内容和位置 故障诊断基础架构概述 故障诊断 ...

  7. 160316、实时处理oracle数据库中表的数据变化

    http://blog.csdn.net/as339000204/article/details/45390727     近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是 ...

  8. 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】

    疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...

  9. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

随机推荐

  1. 纯html上下翻滚效果公告板

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. C++运算符重载(成员函数方式)

    一.运算符重载 C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作.如果将C++中这些现存的运算符直接作用于用户自定义的类型数据上,会得到什么样 ...

  3. DataTable怎么判断一列是否为主键?

    在普通情况下,我们使用SqlDataAdapter来Fill填充DataTable,如果使用下列代码我们是不能拿到主键列的: dataadapter.Fill(Table); DataColumn[] ...

  4. WF4.0(1)---WorkFlow简介

    编程编的越久就发现自己以前的语文真的没学好,写个随笔取个名字都需要思考半天,以前工作的时候只是听说过工作流,知道的范围仅限于工作流在OA审批流程中用的比较多,现在自己实实在在的用工作流也做过不少项目, ...

  5. 20个代码生成框架 (.NET JAVA)

    1.1 CodeSmith 一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://www.codesmithtools.com 官方论坛:http://forum.codesmi ...

  6. IOS 设置圆角用户头像

    在App中有一个常见的功能,从系统相册或者打开照相机得到一张图片,然后作为用户的头像.从相册中选取的图片明明都是矩形的图片,但是展示到界面上却变成圆形图片,这个神奇的效果是如何实现的呢? 请大家跟着下 ...

  7. 手机WiFi万能钥匙查看破解的password和手机查询命令收集

    手机须要网络利用WiFi万能钥匙破解了WIFI的password.手机就能够上网了,但假设想在电脑上使用手机破解的Wifi热点上网就须要password,此时须要知道手机破解的password,WiF ...

  8. Android -- SDcard文件读取和保存

    背景                                                                                            一些东西可以 ...

  9. 在myeclipse中写sql语句的细节问题

    注意类型,varchar 和int  在java中表示为sql语句中的细微区别!! 下面的REGISEAT_NUM为int 类型       custid为varchar类型 String sql1= ...

  10. unity3d插件Daikon Forge GUI 中文教程-3-基础控件Button和Sprite的使用

    (游戏蛮牛首发)大家好我是孙广东.官网提供了专业的视频教程http://www.daikonforge.com/dfgui/tutorials/,只是是在youtube上.要观看是须要FQ的. 只是教 ...