2011年5月 2日

[pgsql-jp: 40760] Re:ストアドファンクションの順次実行

2011/5/2 yukihito miso <oira3ryu@xxxxx>:
>   syntax error at or near "insert_tmp_records1"
> ? ? ? ? ? ?da.SelectCommand = new NpgsqlCommand
> ? ? ? ? ? ?(
> ? ? ? ? ? ? ? ?"create_tmp_records1(var_col_TIME_function(:n_id));"
> ? ? ? ? ? ? ? + "insert_tmp_records1(var_col_TIME_sub_function(:n_id));"
...
> ? ? ? ? ? ? ? + "SELECT * FROM tmp_records;",

> ? ? ? ? ? ? ? ? ? ?m_conn
> ? ? ? ? ? ?);
> ? ? ? ? ? ?da.SelectCommand.CommandType = CommandType.StoredProcedure;

Npgsql は良く知らないのですが、ざっと見た感じでは:

・CommandType.StoredProcedure で複文は使えるんでしょうか?
 マニュアルを見る限り、ストアドの名前を1つ書くだけに読めます。
・CommandType.StoredProcedure なのに、最後に "SELECT *" という
 普通のSQLが混ざるのはおかしい気がします。

複文を使わず、関数やSQLごとにコマンドを分ける必要があるのでは
ないでしょうか? また、PostgreSQL に限っては、SQLからストアドが
実行できるので、関数呼び出しすべてに SELECT を付け、
普通のSQLとして実行する手もあるかもしれません。

--
Itagaki Takahiro

投稿者 xml-rpc : 2011年5月 2日 10:48
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103525
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。