jiangwj 发表于 2016-3-4 14:34

matlab以jdbc的方式连接数据库

后面一大堆,总的来说就是建议大家用64位matlab(目前32.9和intel那个服务器上是64位的)的时候用jdbc方式连接数据库。改动不大,连接命令和以前相似: database(库名、用户名、密码、驱动、ip串)

e.g.conn=database('fa','fa','fa','oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@127.0.0.1:1521:');(Matlab-Toolbox里面已经添加了jdbc的架包,直接写命令就可以了)64位的matlab,用odbc取数据的时候出了些随机问题,大致就是fetch返回的数据记录条数与 pl-sql实际查询不符,且随机变动,matlab不报错。重启游标和连接都没有用,需要重启matlab解决。改为jdbc连接后到目前为止没出这个问题。这位同学描述的更具体:http://www.mathworks.com/matlabcentral/answers/35887-wrong-data-size-being-returned-by-fetch-64-bit-databasetoolbx

下面是Matlab 2014文档中的数据库连接方式列表对比http://www.mathworks.cn/cn/help/database/ug/using-native-odbc-connection.html

连接方法:请参考:http://blog.csdn.net/pretend_b/article/details/6064554

​Linux下的配置过程和Windows一样,如下:

1、将OracleJDBC的JAR包拷贝到Matlab的相关目录(..\matlab\java\jar\toolbox\)下。

Oracle 11g安装目录的jdbclib(如\app\Administrator\product\11.1.0\client_1\jdbc\lib)下有四个文件:ojdbc5.jar、ojdbc5_g.jar、ojdbc6.jar、ojdbc6_g.jar。

ojdbc5.jar、ojdbc5_g.jar应用于jdk1.5版本,ojdbc6.jar、ojdbc6_g.jar应用于jdk1.6版本。 www.linuxidc.com我们把ojdbc6.jar拷贝到matlab主目录中的java\jar\toolbox目录下

例如:

这里使用到Oracle服务端使用的是 Oracle 11g

此时,将ojdbc6.jar包拷贝到D:\matlab\R2008b\java\jar\toolbox目录下。

注意:

1、客户端的ojdbc6.jar在..\product\11.1.0\client_1\jdbc\lib目录下存在。

2、服务端的ojdbc6.jar在..\product\11.1.0\db_1\jdbc\lib目录下存在。

3、配置matlab的classpath.txt文件

打开..\matlab\toolbox\local目录,编辑classpath.txt文件。添加如下行:

$matlabroot/java/jar/toolbox/ojdbc6.jar

并保存。

4. 请重启matlab!!!!(切记,否则虽然保存无问题,但是用javaclasspath来看的时候就会发现没有添加进去ojdbc6这一行。)​

5、在Matlab中建立到Oracle的JDBC连接测试。

>>conn=database('orcl','scott','123456',

'oracle.jdbc.driver.OracleDriver',

'jdbc:oracle:thin:@192.168.0.101:1521:');

(回车即可)

参数说明:

orcl:数据库服务名

scott:用户名

123456:用户密码

oracle.jdbc.driver.OracleDriver:驱动

jdbc:oracle:thin:@ 192.168.0.101:1521::连接串

Matlab中简单的数据库操作

1.连接

conn=database(),database必须为三个或五个入参

2.执行查询

curs=exec(conn, 'select * fromEMP');

%取记录,最多10条

curs = fetch(curs, 100);

%读取记录值,存放于curs.Data中

AA = curs.Data;

AA

3.获取数据

curs=fetch(curs)

4.insert

insert(conn, table, colnames,exdata)如:

insert(conn,’tb_queue_tmp’,{’t_tm’},{‘0001’})

5.update

update(conn, table, colnames,exdata, whereclause)

MATLABconn 链接代码:

其中参数来源于oracle的参数,plsql -- help – oracle info – TNS name 找到所要用的那个数据库

​来自:http://blog.sina.com.cn/s/blog_c29649af0102w6oy.html
页: [1]
查看完整版本: matlab以jdbc的方式连接数据库