Matlab 調用Oracle資料庫

來源:互聯網
上載者:User

標籤:

本文分兩部分,1、通過sql語句操作資料庫。2、通過ddl操作資料庫

一 通過ODBC實現到oracle的串連
1)控制台->管理工具->ODBC資料來源->在系統DSN中添加oracle資料來源;
2)matlab命令列中輸入建立串連的命令:

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,將其複製到

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)

 

1、資料庫實際查詢操作 
%% 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 Oraclecurs = exec(conn, ‘select * from mes_imp_operate_log d‘);data = fetch(curs);%  Get number from Oracledata = data.Data; % Last Close Cursorclose(curs);close(conn);data

 

 結果輸出(和實際中一樣的結果,結果儲存類似矩陣):

 

2、我們執行一條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 Oraclesql = ‘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 Oracledata = data.Data;% Last Close Cursorclose(curs);close(conn);
測試結果:
 
 Java程式調用matlab ,將.m 檔案打包成jar,Eclipse調用,可以參考:http://www.myexception.cn/database/2074301.html 謝謝閱讀!分享是美德!分享共進步!

Matlab 調用Oracle資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.