[pgsql-jp: 40760] Re: ストアドファンクションの順次実行
Itagaki Takahiro
itagaki.takahiro @ gmail.com
2011年 5月 2日 (月) 10:48:17 JST
2011/5/2 yukihito miso <oira3ryu @ gmail.com>:
> 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
pgsql-jp メーリングリストの案内