本文分兩部分,一、經過sql語句操做數據庫。二、經過ddl操做數據庫
一 經過ODBC實現到oracle的鏈接
1)控制面板->管理工具->ODBC數據源->在系統DSN中添加oracle數據源;
2)matlab命令行中輸入創建鏈接的命令:html
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,將其複製到java
matlab安裝目錄的java子目錄D:\Program Files\MATLAB\R2013a\java\jar\toolbox;
2)修改matlab的classpath文件:D:\Program Files\MATLAB\R2013a\toolbox\local\classpath.txt,在結尾添加一sql
行內容:數據庫
$matlabroot/java/jar/toolbox/ojdbc6.jar
3)matlab命令行中輸入創建鏈接的命令:oracle
conn_jdbc = database('QUIK', ... %數據庫服務名 'QUIK', ... %登陸用戶名 'QUIK', ... %登陸密碼 'oracle.jdbc.driver.OracleDriver', ... %驅動名稱 'jdbc:oracle:thin:@localhost:1521:') %鏈接字符串
經過ping命令查看鏈接情況:app
ping(conn_odbc) ping(conn_jdbc)
一、數據庫實際查詢操做
%% 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
結果輸出(和實際中同樣的結果,結果存儲相似矩陣):工具
二、咱們執行一條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調用,能夠參考: