The answer is that there is a bug in MATLAB 2015b. In order to get this to work use set(conn, 'AutoCommit', 'off').
Why does fetch command for sql query fail but runsqlscript work?
4 ビュー (過去 30 日間)
古いコメントを表示
I am connecting to a PostgresQL compliant database and am unable to use the fetch command. It returns a "Invalid fetch cursor". However, if I run the same query using runsqlscript with a *.sql file, it works.
conn=database('dbname','user','pwd','postgresql-9.4.1207','jdbc:address');
resultsFail=fetch(conn,sqlquery); # Returns 'Invalid fetch cursor'
resultsGood=runsqlscript(conn,'test.sql');
# Returns
date
------------
2016-01-14
0 件のコメント
採用された回答
その他の回答 (1 件)
Tushar Athawale
2016 年 1 月 18 日
Hi Bryan,
The error you are receiving is most likely due to invalid database connection or invalid SQL query. In order to troubleshoot the issue regarding the "fetch" command:
1) What is the value of the 'Message' property of the database connection? In your example, it can be checked using the following command:
>> conn.Message
2) What is the exact SQL query that you are trying to execute?
3) Please try fetching data from the database using alternative workflow as provided on: http://www.mathworks.com/help/database/ug/importing-data-using-the-fetch-function.html. In your example, please execute the following MATLAB commands:
>> curs = exec(conn,sqlquery)
>> curs = fetch(curs)
Can you execute the above commands successfully? If not, what is the exact error message that you are receiving?
参考
カテゴリ
Help Center および File Exchange で Database Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!