Matlab如何连接Oracle数据库及基本操作
语言和语法都是相通的,了解Oracle的连接和处理,对于其他的数据库也是类似的。 一 通过ODBC实现到oracle的连接
)控制面板->管理工具->ODBC数据源->在系统DSN中添加oracle数据源;
)matlab命令行中输入建立连接的命令:
conn_odbc = database('QUIK', ... %ODBC名称 'QUIK', ... %登录用户名 'QUIK') %登录密码 二 通过JDBC建立与oracle的连接
)找到jdbc的驱动程序文件D:\oracle_app\lcm\product\11.2.\dbhome_1\jdbc\lib\ojdbc6.jar,将其复制到
matlab安装目录的java子目录D:\Program Files\MATLAB\R2013a\java\jar\toolbox;
)修改matlab的classpath文件:D:\Program Files\MATLAB\R2013a\toolbox\local\classpath.txt,在结尾添加一
行内容:$matlabroot/java/jar/toolbox/ojdbc6.jar
)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 六 对数据库的其他操作
)执行数据操作的回滚和提交
exec(conn_odbc, 'rollback'); exec(conn_odbc, 'commit');
)执行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')
)执行存储过程和函数
%执行存储过程
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数据库及基本操作的更多相关文章
- Python连接oracle数据库的基本操作
1,创建数据库连接connect和关闭数据库连接close 1.1 创建数据库连接的三种方式: 方法一:用户名.密码和监听分开写 import cx_Oracle db=cx_Oracle.conne ...
- oracle建表权限问题和JSP连接oracle数据库基本操作
JSP连接oracle数据库相关操作 1.创建表 打开Enterprise Manager Console,为用户添加权限CREATE ANY TABLE和分配一定的表空间USERS限额1024k. ...
- java连接Oracle数据库
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...
- 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题
起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...
- NodeJs连接Oracle数据库
nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- 用VS连接oracle数据库时ORA-12504错误
在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...
- ASP.NET连接Oracle数据库的步骤详解(转)
ASP.NET连接Oracle数据库的步骤详解 本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助. 在用ASP.NET开发应用程序时, ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
随机推荐
- 开发同学的福利--mysql监控工具sqlprofiler,类似sqlserver的profiler工具
最近无意发现了mysql的客户端监控工具“Nero Profile SQL”,刚开始还不知道怎么使用,经过半小时摸索,现将使用步骤写下来. 背景:开发的时候,如果数据存储层这块使用EF,或者其他orm ...
- requirejs模块路径配置问题
三种情况:一.设置data-main,没配置baseUrl,以data-main的文件为基准:二.设置data-main,配置baseUrl,baseUrl以值以引用require.js的HTML为基 ...
- POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...
- #5【BZOJ4275】[ONTAK2015]Badania
Description 给定三个数字串A,B,C,请找到一个A,B的最长公共子序列,满足C是该子序列的子串. Input 第一行包含一个正整数n(1<=n<=3000),表示A串的长度. ...
- asp.net core日志组件
日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置文件中的.因为之前介绍配置文件的时候我 ...
- asp.net core配置文件
读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettings>节点.它的数据格式变成了j ...
- Python debug 调试;
F9:执行跳到下一个断点 F8:执行下一步 F7:进入函数
- 049 CDH商业版本的搭建(hadoop5.3.6 +hive+sqoop)
为什么使用CDH版本? 这个主要考虑到兼容性. 下载地址:http://archive.cloudera.com/cdh5/cdh/5 最新的CDH公司的hadoop版本: 一:准备工作 1.步骤 1 ...
- win10 更新之后,无法开启wifi,“组或资源的状态不是执行请求操作的正确状态”
netsh wlan netsh wlan start hostednetwork 请参考最新博客:http://www.cnblogs.com/tanrong/p/8184325.html 已尝试解 ...
- python tkinter-容器、子窗体
Frame f = tkinter.Frame(width=380, height=270, bg='white').pack() LabelFrame f = tkinter.LabelFram ...