人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Java プログラムから Oracle データベースを操作しています。
Oracle に SQL 文を投げるのですが、この SQL は結構時間がかかります。
途中でキャンセルしたくなったとき、キャンセルボタンを押すと
Oracle のプロセスを強制終了するようにしたいのですが、
Java で書く場合、どのようにやればいいのでしょうか?
方法を教えてください。
たとえば、SQL 文を投げたとき、このIDを保存して、
キャンセルボタンを押したときにこうやって kill するとかが知りたいです。
実際のプログラムを例示してくれるとうれしいです。
以上、よろしくお願いいたします。


●質問者: akagi_paon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Java Oracle SQL キャンセル データベース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koriki-WeKan
●0ポイント

以下のSQL文にてセッションを強制終了することが可能。

ALTER SYSTEM KILL SESSION sid, #serial;
◎質問者からの返答

いちおう

select sys_context('userenv','sid') from dual
select serial# from v$session where sid=?

でsidとserial#はとれそうですね。


2 ● lizy
●70ポイント ベストアンサー

java.sql.Statement#cancel()を呼びだすことによってキャンセルできるようです。

Statement (Java Platform SE 6)

DBMS およびドライバの両方が SQL 文の終了をサポートする場合に、この Statement オブジェクトを取り消します。このメソッドは、1 つのスレッドが別のスレッドによって実行中の文を取り消すのに使用できます。

ここのページの「Statement.cancelの使用」を見る限り、OracleのJDBCドライバでcancel()メソッドは実装されているようです。

Oracle Database JDBC開発者ガイドおよびリファレンス D トラブルシューティング

◎質問者からの返答

おお、ありがとうございます。試してみます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ