Matlab如何连接Oracle数据库及基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab如何连接Oracle数据库及基本操作相关的知识,希望对你有一定的参考价值。

语言和语法都是相通的,了解Oracle的连接和处理,对于其他的数据库也是类似的。

一 通过ODBC实现到oracle的连接
1)控制面板->管理工具->ODBC数据源->在系统DSN中添加oracle数据源; 2)matlab命令行中输入建立连接的命令: conn_odbc = database(QUIK, ... %ODBC名称 QUIK, ... %登录用户名 QUIK) %登录密码 二 通过JDBC建立与oracle的连接 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) 三 数据库查询 exec函数用于执行SQL语句,并返回一个cursor对象,需要注意的是,这里所说的cursor对象并不是我们在SQL中理解的游标,通过下面执行的语句结合理解: curs = exec(conn_odbc, select EMP_NO,NAME from EMP_MAIN); %执行查询 curs = fetch(curs); %获取查询呢结果 data = curs.Data; %将查询结果输出到矩阵变量 注意:通过第一句exec执行后,返回的结果变量curs并没有直接包含查询的结果,通过fetch函数才能将查询结果返回给赋值变量,最终的查询结果是包含在curs.Data中的! 四 向数据库中插入数据 fastinsert(conn, tablename, colnames, exdata) 参数说明: tablename:表名 colnames:列名 exdata:待插入的数据 示例: %执行插入 fastinsert(conn_odbc,EMP_MAIN,{EMP_NO,NAME},{LIKEQIANG,李克强}); %查看插入的数据 curs = exec(conn_odbc, select EMP_NO,NAME from EMP_MAIN where EMP_NO=‘‘LIKEQIANG‘‘‘); curs = fetch(curs); data = curs.Data 注意:当需要同时向同一个表中插入多条数据时,可以通过向exdata中传入一个多行的矩阵,矩阵的每一行表示一条记录。在java中用惯了Statement.executeUpdate的朋友们,看到这个功能也许会小兴奋一下,至少我是,呵呵。 五 数据库更新 update(conn, tab, colnames, exdata, whereclause) %一条update语句 update(conn, tab, colnames, ... %更新多条update语句 {datA,datAA, ...; datB,datBB, ...; datn, datNN}, ... {where col1 = val1; where col2 = val2; ... where coln = valn} 参数说明: tab:表名 colnames:列名 exdata:待更新的数据 whereclause:条件 示例: %执行更新 update(conn_odbc, EMP_MAIN, {EMP_NO,NAME}, {LIKEQIANG_OK,李克强_OK}, ... WHERE EMP_NO=‘‘LIKEQIANG‘‘‘); %查看更新后的数据 curs = exec(conn_odbc, select EMP_NO,NAME from EMP_MAIN where EMP_NO=‘‘LIKEQIANG_OK‘‘‘); curs = fetch(curs); data = curs.Data 六 对数据库的其他操作 1)执行数据操作的回滚和提交 exec(conn_odbc, rollback); exec(conn_odbc, commit); 2)执行DDL语句 基本语法是:exec(conn,sql语句); 示例: %创建新表 mktab = [CREATE TABLE Person(LastName varchar2(20), ... FirstName varchar2(30),Address varchar2(100),Age number)]; curs = exec(conn_odbc, mktab); %修改表结构 curs = exec(conn_odbc, ALTER TABLE Person ADD City varchar2(30)) %删除表 curs = exec(conn_odbc, DROP TABLE Person) 3)执行存储过程和函数 %执行存储过程 curs = exec(conn,{call sp_name (parm1,parm2,...)}); curs = fetch(curs); %执行函数 curs = exec(conn,SELECT dbo.get_prodCount() as num_products); curs = fetch(curs); 注意:上面的语句是从matlab的帮助文档中粘贴过来的,没经过实际测试,如果的确需要用,只能劳驾自己尝试了! 七 完成数据库操作 在完成对数据库的查询、修改等操作后,需要关闭打开的游标和数据库连接,切记! %关闭游标 close(curs); %关闭数据库连接 close(conn_odbc);
1、准备工作和相关系列配置和是否链接成功测试:

技术分享

以上是关于Matlab如何连接Oracle数据库及基本操作的主要内容,如果未能解决你的问题,请参考以下文章

sql2008如何连接操作oracle

ORACLE如何查看修改连接数,进程数及用户数,三者之间关系

Oracle入门之oracle查询及基本命令函数

Oracle配置管理

Oracle超出最大连接数问题及解决

如何快速查出 oracle 数据库中的锁等待