.net插入到oracle中_使用matlab调用Oracle数据库

一、通过JDBC连接Oracle数据库

小编通过JDBC连接Oracle数据库,步骤如下啊;

1、找到jdbc的驱动程序文件并复制

位置在Oracle安装基目录product11.2.0dbhome_1jdbclibojdbc6.jar,然后将它复制到matlab安装目录的java子目录…MATLABR2016ajavajartoolbox下;

2、修改matlab的classpath文件

该文件在...MATLABR2013atoolboxlocalclasspath.txt,于结尾添加一行:$matlabroot/java/jar/toolbox/ojdbc6.jar

3、建立连接的命令并测试

如果需要新建立连接(PS:小编这里创建的表空间、用户名和密码都是MATLAB123),可以创建MATLAB123表空间及用户:点击左侧连接选项卡列表中sys连接左侧的加号,连接sys用户并输入如下sql语句,点击工具栏运行脚本按钮

create tablespace MATLAB123 datafile 'D:/ MATLAB123.dbf' size 500m;
create user MATLAB123 identified by MATLAB123 default tablespace MATLAB123;
grant connect, resource to MATLAB123;

8ff640e8422fc187501fde07ea3e8975.png

PS:如果各位忘了sys的密码,可以按照下面步骤进行修改(原文链接:https://zhidao.baidu.com/question/591397847.html):

1、win键+R键,输入cmd,打开命令提示符
2、输入:sqlplus /nolog

869a02bc63336b835a2137b45da1b55f.png
3、输入conn /as sysdba

9f134c6a375b1d7d4c445f2a77afdbf6.png
4、输入alter user sytem identified by 新密码

4906cc55c7be01cdf5fa7e2d2d5ee8b1.png

在新创建完用户以后(或者使用原来已经有的用户),需要在MatLab命令行窗口输入以下数据库连接字符串:

conn_jdbc=database('sid_name','username','password','driverName','连接字符串')

sid_name:这里不是services_name

username:用户名

password:密码

driverName:驱动名称—’oracle.jdbc.driver.OracleDriver’

连接字符串:‘jdbc:oracle:thin:@localhost:1521:sid_name’

注意:jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name。

查询sid_name有两种方法:

方法一:通过以下sql语句查询(可能是因为我新建的用户,所以使用这个命令不好用,但我使用了第二种办法):

select instance_name from v$instance;

方法二:在sqldeveloper里直接查看

ce8760524d8e973ca3dde60ff1869469.png

4. 通过ping命令查看连接状况

ping(conn_jdbc)

5. 常见连接错误

ORA-12505, TNS:listener does not currentlyknow of SID given in connect descriptor修改方案就是检查sid_name是否写错了。

原文链接:https://blog.csdn.net/a36567/article/details/80012995

二、在matlab中调用Oracle数据

在成功连接Oracle数据库以后,接下来要在matlab里实现对Oracle数据库的查询及插入操作。

1、插入操作

但如果是新建的数据库的话,需要新建立一个数据表,小编在这里建立一个名为“CITY”的数据表,这个表共有三列“CITY_NO”、“CITY_X”、“CITY_Y”,需要强调的是,使用MATLAB插入数据前必须先建好表,然后才能插入数据

fd8b1b22d219442ac573aa2726475236.png

建完表后,在matlab输入如下语句:

fastinsert(conn, 'tablename', colnames, exdata)

参数说明: tablename:表名 colnames:列名 exdata:待插入的数据示例:

%执行插入
fastinsert(conn_jdbc,'CITY',{'CITY_NO','CITY_X','CITY_Y'},{2,1,1});   %注意因为建立表的时候选择数据属性为NUMBER,所以这里需要添加的是数字

执行之后,在sql developer中查看,发现数据添加成功

f42eaf20d7cc058b6c2fc14288ec1c6d.png

2、查询操作
在matlab输入以下语句查询“CITY”数据表中的数据

curs=exec(conn_jdbc,'select CITY_NO,CITY_X,CITY_Y from CITY ');
curs=fetch(curs);
data=curs.Data;

data是一个cell数组,打开data数组,即可查看从“CITY”数据表中的数据。

03053a82e310fa163e149f1c888ed2c1.png

原文链接:https://www.cnblogs.com/imyao/p/5578476.html

三、MATLAB代码

clear
clc
%% 连接Oracle数据库
conn_jdbc=database('sid_name','MATLAB123','MATLAB123','oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@localhost:1521:sid_name');    %把sid_name替换成自己的,MATLAB123也是我自己的用户名和密码,也需要替换成自己的
ping(conn_jdbc)
%% 实现插入功能
fastinsert(conn_jdbc,'CITY',{'CITY_NO','CITY_X','CITY_Y'},{2,1,1});
%% 实现查询功能
curs=exec(conn_jdbc,'select CITY_NO,CITY_X,CITY_Y from CITY ');
curs=fetch(curs);
data=curs.Data;

更多资源请微信关注优化算法交流地

往期精彩

机器学习 | 基于遗传算法的BP神经网络优化算法(附MATLAB代码)​mp.weixin.qq.com
7854d39d3b06a27aa45a0db98ef720b6.png
机器学习 | 简单实现Bp神经网络​mp.weixin.qq.com
17be079c34a3308710327e504c704f3c.png
二维装箱问题之BL法修正版(附MATLAB代码)​mp.weixin.qq.com
6ffea8d290245806014e7c7a0c954a2b.png
快速入门文献管理软件-EndNote X9​mp.weixin.qq.com
07ebaced6da120df18f31ecdfad86408.png
最小二乘法(附MATLAB代码)​mp.weixin.qq.com
697c9cb0dc96d2f5fb320a0f240294ce.png
VRPTW合集 [CW节约算法,TS(硬约束版),TS(惩罚函数版),LNS四种方法对比(附MATLAB代码)]​mp.weixin.qq.com
d6846130445e4cb9cd17dfa8ceddd015.png
NSGA-II多目标优化算法讲解(附MATLAB代码)​mp.weixin.qq.com
0c1b7c38d3d3af0917c0b0e91d623055.png
基于人工势场法的机器人二维路径规划(附MATLAB代码)​mp.weixin.qq.com
2fc3e06858246ed5835b45187a71eb17.png
基于粒子群算法的多目标搜索算法讲解(附MATLAB代码)​mp.weixin.qq.com
c64cee24b3bdc2bc7876c41e606b0e10.png
蚁群算法通俗讲解(附MATLAB代码)​mp.weixin.qq.com
1b7257c22583077d3a6051075798ec68.png
混合粒子群算法通俗讲解(附MATLAB代码)​mp.weixin.qq.com
50afa01bcbd0ef888035bf00a5028d06.png
遗传算法求解车间调度问题(附MATLAB代码)​mp.weixin.qq.com
ed37f495198d5c9890370789a95dd177.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值