[DBFLUTE-282] {Java}: ストアドプロシージャのResultSet対応(Map限定&Oracle/PostgreSQL限定) Created: 2008-06-30  Updated: 2008-08-22  Resolved: 2008-08-20

Status: Closed
Project: DBFlute
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: jflute Assignee: jflute
Resolution: Fixed Votes: 0
Labels: None


 Description   

ResultSetHandlerの生成をS2DaoMetaDataExtensionでやることがポイント。
もしくは、RowCreatorとかどこかに独立させるのもあり。



 Comments   
Comment by jflute [ 2008-08-20 ]

まとめると:

Map限定対応で、Oracle/PostgreSQLだけ正式サポート。
他のDBも惜しいところまで来ているが、JDBCの問題などがあり、
しっかりサポートするためにはまだまだ時間が必要。

Comment by jflute [ 2008-08-20 ]

クセというのは具体的に:

OUTパラメータを利用したカーソルの場合で、
カーソル引数が1つだけの場合は、refcursorの暗黙の戻り値が定義されるようで、
JDBCが「へんてこりん」な情報を返してきてしまうため、うまく動作しない。
(引数情報と戻り値情報を両方返してきて、パラメータの数が合わないエラーになる)

Comment by jflute [ 2008-08-20 ]

PostgreSQLもできるようになった。
(ちょっとクセはあるが。。。)

Comment by jflute [ 2008-08-20 ]

さらに参考(PostgreSQL):

【ストアド関数からResultSetを入手】
http://old.postgresql.jp/wg/jpugdoc/jdbc/jdbc-8.3dev-600/callproc.html

【OUTパラメータ】
http://itpro.nikkeibp.co.jp/article/COLUMN/20051005/222300/?ST=oss&P=5

Comment by jflute [ 2008-08-12 ]

http://old.postgresql.jp/wg/jpugdoc/jdbc/jdbc-8.3dev-600/callproc.html

こっちも参考。
戻り値として扱っている。
但し、この場合MySQLとかSQLServerの戻り値とは違い、
ストアド的には戻り値だけど、JDBC的にOUTパラメータである。
ということで、PostgreSQLはOUTパラメータでのResultSetとなる。
さて。。。JDBCのメタ情報はどう返してくるのだろうか!?

Comment by jflute [ 2008-08-12 ]

PostgreSQLはこれだぁ!

http://www.postgresql.jp/document/pg746doc/html/jdbc-callproc.html
※エンコーディングEUCで閲覧すること

なんとか試すことは出来そうなので、
PostgreSQLもサポート対象にしたい。

Comment by jflute [ 2008-08-10 ]

OracleはList<Map>限定で対応。

PostgreSQLはそもそもカーソルを指定できない!?(要調査)

MySQLは、
JDBCが情報を返してくれない問題
いざ実行するとJDBC内部でNullPointerの問題
ValueTypeの問題
3つ

SQLServerは、
JDBCが情報を返してくれない問題
実行時のValueTypeの問題
2つ

DB2は何もしてない

基本的にPostgreSQLだけ調査をして残りは未対応のままでいく。
MySQLやSQLServerはSQLファイルから呼ぶ方法があるので特に問題ない。

Comment by jflute [ 2008-08-09 ]

Oracleは実装済&確認済
PostgreSQLは実装済&未確認
MySQLは実装済&うまくいかない(無視かも)
SQLServerは実装済&未確認
DB2は実装済&未確認

Comment by jflute [ 2008-07-08 ]

とりあえずMapだけにしようか。。。
まったく出来ないってのはマズいので。

将来的には、Sql2Entityで自動生成DTOってのをやりたい。
しかし、ちゃんとやるとかなり重い。

Generated at Fri Sep 06 14:25:05 JST 2024 using Jira 9.17.1#9170001-sha1:50a85bbf59b8f953a7611120138a91d97aa03895.