MATLAB: How to work with an Oracle SQL function which returns a REF CURSOR in Database Toolbox 3.5.1 (R2009a)

#refcursorDatabase Toolboxexec

My SQL function in my ORACLE database returns a REF CURSOR. Can I work with this SQL CURSOR object in MATLAB? How can I execute this procudere which returns a REF CURSOR and retrieve the resulting dataset?

Best Answer

To execute the stored procedure use the EXEC function:
result = exec(conn,'SELECT my_package.my_function FROM myTable');
Then you may parse the value manually by working with the Java objects:
%%Get the java object
res = result.ResultSet;
res.next;
res = res.getObject(1);
%%Get the data from the Java object
i=1;
while res.next == 1 % For all rows
x{i,1}=res.getObject(1); % Get data from 1st column
x{i,2}=res.getObject(2); % Get data from 2nd column
% etc
i = i + 1;
end