- 締切済み
ストアドプロシージャはアトミックに実行されるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
RDBMSによっては、ストアドルーチン内でCOMMITできるものもありますが、MySQLではMySQL 5.1現在はストアドルーチン内でのCOMMITは未実装です。 すなわち、ストアドルーチンだけが、COMMITやROLLBACKすることはありません。
関連するQ&A
- PostgreSQLでストアドプロシージャについて
皆さんのお陰でストアドファンクションを作成する事ができました。 ここで1つ、疑問が・・・ ネットでPostgreSQLの「CREATE PROCEDURE」を検索しても私が望んでいる情報を得る事ができませんでした。 申し訳ありませんがここで質問があります。 PostgreSQLで「CREATE PROCEDURE」はないんでしょうか。 PostgreSQLではストアドプロシージャとストアドファンクションは一緒なのでしょうか。 MySQLやSQL Serverではストアドプロシージャとストアドファンクションは別だった気がしますが・・・ ※違っていたらすみません。 どなたか私の疑問を解決していただけませんでしょうか。 宜しくお願いします。
- ベストアンサー
- PostgreSQL
- .NETからストアドプロシージャを実行
VB.Netからストアドプロシージャを実行するプログラムの書き方がよく分かりません。 データベースはOracleです。 PROCEDURE test(aaa IN number, bbb IN varvhar2, ccc IN OUT varchar2); といったPL/SQLをVB.NET上で実行するとします。 (略:データベースへの接続処理) strSql = "begin test(10, 'テスト', '');end;" 結果「式が割り当てられていません」とエラーが出ます。 すべての引数がINのプロシージャでは、上記の方法で実行できたので、IN OUTへの引数の渡し方に問題があると思うのですが、どうしても分かりません。 まだ使い始めたばかりで、どうしていいかまったく分からない状態です。 どうかご指導お願い致します。
- ベストアンサー
- Visual Basic
- ストアドプロシージャ
MySQLでストアドプロシージャを使おうと思ったのですが、root権限でないと実行も定義もできません。 他のユーザーに権限を与えるにはどうしたらいいでしょうか? userテーブルのExecute_privの値は関係ありますか?
- ベストアンサー
- MySQL
- ストアドプロシージャの実行
こんばんは。 C#のアプリケーションからストアドプロシージャの実行を検討 しています。ストアドプロシージャでは複数テーブルを更新する バッチシステムです。 このケースでは、C#側ではエラーをどこまでハンドリングするのが 良いでしょうか?。 「成功と失敗の戻り値だけ」か、それとも「ORA-」のようなエラーまで全てハンドリングすべきか迷っていまして・・。 ご意見お願いします。
- ベストアンサー
- その他(プログラミング・開発)
- ストアドプロシージャからストアドプロシージャを呼ぶことはできるか?
ストアドプロシージャからストアドプロシージャを呼ぶことはできるか? Oracle10g WindowsServer2008 Aというプロシージャ内でEXECコマンドを使ってBというプロシージャを呼ぶようにしたところコンパイルエラーになりました。ストアドプロシージャからストアドプロシージャを呼ぶことはできないのでしょうか?
- ベストアンサー
- Oracle
- MySQLのストアドプロシージャについて
MySQL5.6のストアドプロシージャが返すSELECT結果のフェッチ方法について教えてください。 delimiter $ create procedure sample_proc() begin select * from TEST_TBL; end$ の様なストアドプロシージャがあり、これを他のストアドプロシージャから呼び出して、 ループしながらフェッチしたいのですが、どうすればよいでしょうか。
- 締切済み
- MySQL
- ストアドプロシージャについて
教えてください。 NT4.0上でAccess2000+MSDEで使用しているのです。 ストアドプロシージャでUPDATE文のあとにSELECT文を使い更新したデータを受け取ろうとしているのですが、実行すると「ストアドプロシージャは実行されましたがレコードは返されませんでした。」とメッセージが表示されるだけなのです。UPDATE文を注釈にするとレコードは返されるのでデータはあるのだと思います。 宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- ストアドプロシージャの実行で...
Test_Pro、というストアドプロシージャを実行させたいんですが、 Microsoft OLE DB Provider for SQL Server エラー '80040e14' ストアド プロシージャ 'Test_Pro' が見つかりませんでした。 というエラーが出てしまいます。どうして??? 実行させる為に書いたソースは、 set cmd = Server.CreateObject("ADODB.command") Set cmd.ActiveConnection = conn cmd.CommandText = "Test_Pro" cmd.CommandType = 4 Set rs = cmd.Execute("@a", a) です。
- 締切済み
- Visual Basic
- ストアドプロシージャを実行時のパラメータについて
はじめましてkou2000と申します。SQLServer2000でストアドプロシージャを作成していますがうまくいきません。 下記のようなことが実際にできるかご教授ください。 CREATE PROCEDURE TEST_PROCEDURE @SYUBETU nvarchar AS SELECT AAAAAAA INTO ##TMP FROM TEST WHERE BBBB IN (@SYUBETU) GO 上記のようなストアドプロシージャを作成しプログラムから実行する際に @SYUBETU = "'1','2','3','4','5'" のような可変の文字列を設定しストアドプロシージャを実行できますでしょうか? よろしくお願いします。
- 締切済み
- SQL Server
- ストアドプロシージャの実行について
asp.net から sqlserver のストアドプロシージャを実行させる勉強をしています。 作成されているはずのストアドプロシージャを実行できずに困っています。 webformにテキストボックス、ボタン、データグリッドを貼り付け、ストアドプロシージャを作成し下記のプログラムを実行させるのですが上手くいきません。 (テキストボックスに任意で入力された数値のデータをボタンを押すと表示するものです) <エラー内容>→ ストアド プロシージャ 'proc1' が見つかりませんでした Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New SqlConnection Dim cmd As New SqlCommand cn.ConnectionString = "接続文字列" cmd.Connection = cn cmd.CommandText = "proc1" cmd.CommandType = System.Data.CommandType.StoredProcedure Dim p1 As SqlParameter = cmd.Parameters.Add("@param1", System.Data.SqlDbType.Int) p1.Value = TextBox1.Text cn.Open() Dim dr As SqlDataReader = cmd.ExecuteReader DataGrid2.DataSource = dr DataGrid2.DataBind() dr.Close() cn.Close() end sub ストアドproc1(場所:Northwind)の内容↓ CREATE procedure proc1 @param1 int as select * from products where categoryID=@param1 どなたか原因のわかる方がいれば、宜しくお願いします。
- ベストアンサー
- SQL Server
補足
ご回答ありがとうございます。 ということは、ストアドプロシージャ内の処理はアトミックでは ないということでしょうか? 例えば、 CREATE PROCEDURE hoge() BEGIN UPDATE table1; UPDATE table2; END のようなことをした時、UPDATE table1 の実行後に、別のプロセスが、 DBの内容を変更した後に、UPDATE table2 を実行してしまう ということになりますでしょうか?