お世話になります、
Oracleで、delete文で困っています。

関係しあう二つのテーブルtab1,tab2があります。

二つのテーブルから同時に関係する項目を削除する
場合、同時に両方のテーブルの関係する項目を削除する場合どのような文になるのでしょうか、

delete from で複数のテーブルをしてすることはできないし、

delete from (select * from tab1,tab2)というような感じでデリートしても、片方のテーブルしかデリートされません。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

結合VIEWで定義しておけば消せると思います。


詳しくはORACLEのマニュアルORACLE概要をご覧ください。

#バージョンに依存する機能もあるので質問の際にはバージョンも明記した方が良いと思いますよ。
    • good
    • 0

「制約」があるテーブル、という意味ではないんですね?



ならばあらかじめ削除対象を別テーブルに抽出しておいて、
その後にDELETE文を2本実行ではどうでしょうか?

この回答への補足

削除条件を抽出しておいて、
それを使ってデリート文を2本実行するしかないでしょうか…

手間がかかりますね、
ありがとうございました。

補足日時:2001/08/17 21:17
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのフリーズ

ノートパソコンでエクセル2003を使用しているとしょっちゅう画面がフリーズしてしまいます。
フリーズ時間は最大で5秒間程で、頻度は5秒~15秒くらいに一回とかなり頻繁です。(普通のA4サイズの書類を作るのに1時間ほど掛かります)
状態としてはフリーズ中はカーソルも止まってしまい、でもその間に入力した文字等は記憶しているらしく、フリーズが解けた瞬間一気に打ち出されるような感じです。
エクセル以外は何の問題もなく、またそのエクセルのファイルを同ネットワーク上にある他のパソコンで操作しても何の問題もないので、自分のパソコンの中のエクセル本体が壊れているかのような状態です。
どなたか助けていただけないでしょうか?
ちなみにこの現象は突然起きるようになりました。

Aベストアンサー

ソフトの不具合が原因です。再インストールをお勧めします。

Q複数テーブルに対するDELETE文が失敗

BooksDataテーブルのBookID436のレコードについて
BooksCategoryとBooksDataテーブルを削除するSQLが失敗します。
どこが悪いのでしょうか。

[BooksCategory]
BookID

[BooksData]
BookID

DELETE BC.*,BD.*
FROM BooksCategory AS BC, BooksData AS BD
WHERE BD.BookID=BC.BookID AND BD.BookID=439;

Aベストアンサー

最近のDBは複数テーブルを一括で削除ってできるんですか・・・?
DELETE FROM BooksCategory
WHERE BookID=439;
DELETE FROM BooksData
WHERE BookID=439;
しかできないと思ってたんですが

Qエクセルで画像を貼り付けるとフリーズしてしまう。

エクセルに画像を貼り付けるとパソコンがフリーズしてしまいます。何故でしょうか?解決方法を教えてください。

OSは、Windows2000です。
エクセルのバージョンは、2003。

Aベストアンサー

Win2000で198MBはちとキツイかな?
エクセルのバージョンが2003というのは、Office2003を入れていると思うのですが、他にアンチウィルス系も動いているのでしょうから、256MBは欲しいですね。

最近似たような質問があって、直接貼り付けるよりも問題のjpegをファイル保存しておき、エクセルの[挿入]→[オブジェクト]で実施したらどうかという回答があったばかりです。このときはワードでしたが、エクセルでもお試しみてはどうですか。

Qあるテーブルの内容を基準にして違うテーブルを更新するSQL文

教えて下さい。

あるテーブルに下記の内容があります。
ID│名称
─┼───
1│花
2│木
3│水

もうひとつのテーブルには、
ID│名称
─┼───
1│海
3│水
4│空
となっています。
最初のテーブルの全レコードを対象に、最初のテーブルのIDと同じ値がもうひとつの
テーブルにある場合、もうひとつのテーブルをUPDATEし、存在しなければINSERTしたい
です。
結果を
ID│名称
─┼───
1|花
2│木
3│水
4│空
を期待しています。

このようにするSQL文を教えていただけませんでしょうか。
よろしくお願いします。

Aベストアンサー

良く似た質問が過去に有りました。
回答2がぴったりだと思います。
参考にしてください。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=604829

Qエクセルがフリーズ

エクセルで通常の使い方をしているのに、突然マウスポインターがフリーズします
何回もあります。何が原因でしょうか?パソコンはNECのノートです。

Aベストアンサー

¥Windows¥TempフォルダにEXCEL使用に
テンポラリファイルが作成されてれば、
これを削除すると改善されるかも?

むやみに消すとまずいこともありますのでくれぐれも慎重に。

QDELETE文のWHERE条件にSUBSTRを使いたい 

DB2+eclipse2.1で開発しています。

テーブルのデータ削除に条件を付け加えたいのですが、
strSql = "DELETE FROM スキーマ名.テーブル名 WHERE substr(ABC,1,6) < " + "200404";
というように、SQL文を書くと、

------------------------------------
[IBM][CLI Driver][DB2/NT] SQL0440N 互換引き数を持つタイプ "FUNCTION" の名前 "SUBSTR" の許可ルーチンが見つかりませんでした。 SQLSTATE=42884
------------------------------------

上記エラーが出ます。
DB2でSUBSTRって使えると思うのですが。

ご存知の方いましたら、教えてください。
よろしくお願いします。

Aベストアンサー

SUBSTRで使っているABCは、カラムでしょうか?質問中のステートメントを見る限りそうだと思われますが、もし文字列定数だったらシングルクォーテーションが必要ですね。

DB2がどうかはあまり使った事がないので自信がないのですが、大抵のRDBMSは構文解析中に遭遇した解析不可能な点につき、人間の観点からすると相応しくないのではというようなエラーを返すので、100%信用しない方がいいかもしれません。

Qエクセルのフリーズとタスクマネージャーの無反応

エクセル使用時たびたびフリーズするので困っています。(多い時は1時間で3回)
質問集で同じような症状が無いか探したのですが、見つからないので質問いたします。

エクセル使用時、リボンやシート見出し、をクリックすると画面の半分が白くなりフリーズすることがあります。
「Alt] 「Ctrl] 「Delete」 を押しても無反応なので、強制終了をします。
再立ち上げ時、セーフモードを選択しても途中で停止してしまうので、通常モードで立ち上げています。(何も無い時はセーフモードで立ち上げることができます。)

1)フリーズの原因と対処法
2)「Alt] 「Ctrl] 「Delete」を押しても反応しない原因と対処法
3)そのあとの再起動時にセーフモードが途中で停止してしまう原因と対処法
分かる方がおられましたら、お教え下さい。

OSはwindows7、office2007
エクセルのサイズは33KBから188KBです。

初めて質問しますので抜けているところがあれば追加します。
よろしくお願いします。

Aベストアンサー

そうですね。。
エクセルの再インストールは、やってみましたか?

QSQL*PLUSでファイルからDELETE文

お世話になります、

Oracle8のSQL*PLUSを使用方法についての質問です。

ローカルにファイル(delete.sql)を作成して
SQL*PLUSからそのファイルを流してファイルの中身の処理を実行するという方法をご存知の方が
いらっしゃったらおしえてください。

--delete.sqlの中身---------
delete from table_a
delete from table_b
delete from table_c
delete from table_d
delete from table_e
以下省略

よろしくお願いします。

Aベストアンサー

SQL*Plusには、ファイルの内容をリダイレクトで実行する機能があります。

DOSプロンプトから

>PLUS80W.EXE system/manager@orcl < delete.sql

と入力してください。

ただし、ユーザー名、パスワード、インスタンス名などはそちらの環境に合わせてください。
ちなみに、delete.sqlの最後に、exitと記述しておけば、終了後にSQL*plusを自動的に終了します。
また、delete.sqlの先頭に、spool delete.logとしておけば、実行のログを作成できます。

SQL*Plusの実行ファイル名はOSやOracleのバージョンによって変わりますが、NTのOracle8なら上記のファイル名で大丈夫だと思います。

Qエクセルのカメラの使用時のフリーズ

こんばんは。以前、エクセル2000の不具合という内容でノートPCの欄に質問させていただきましたものですが、明確な原因がわかりましたので再度質問させていただきます。
これは会社のノートパソコン(WIN2K)でエクセル使用時にツールバーにある「カメラ」機能を使うとにフリーズしたり、数字等を入力してエンターキーを押すと12~30秒くらい時間が固まってしまう状況に陥ってしまうため困っています。
カメラで指定範囲を選択して、別の場所に貼り付けるのであくまで画像データとして取り扱われる関係でデータ量が多くなってしまうとは考えられますが、100KBほどのデータでもフリーズ状況に陥ってしまいます。
ちなみに、フリーズ状態の時のCPU使用率はずっと100%となっています。メモリーは256MBで余裕のある環境にあります。このカメラで貼り付けたデータを削除するとスムースに動く様になります。またカメラで貼り付けたエクセルファイルを開いたまま、別のカメラを使用していないエクセルファイルを使用しても、影響が及んでしまいます。
しかし、同じカメラ機能を使ったエクセルファイルを別のパソコンで開くと多少時間はかかりますが、5秒もかからないくらいで動きます。何かカメラの設定などが悪いのでしょうか?エクセルの再インストールと*.xlbファイルの削除は実行しました。長々となってしまいましたが、よろしくお願いします。

こんばんは。以前、エクセル2000の不具合という内容でノートPCの欄に質問させていただきましたものですが、明確な原因がわかりましたので再度質問させていただきます。
これは会社のノートパソコン(WIN2K)でエクセル使用時にツールバーにある「カメラ」機能を使うとにフリーズしたり、数字等を入力してエンターキーを押すと12~30秒くらい時間が固まってしまう状況に陥ってしまうため困っています。
カメラで指定範囲を選択して、別の場所に貼り付けるのであくまで画像データとして取り扱われる関係でデータ量...続きを読む

Aベストアンサー

私は、[カメラ]機能を比較的多用するので、どんな回答が付くか静観していましたが…

「メモリーは256MB」が「余裕のある環境」かどうかは分かりませんが、仰っているような現象を経験したことがありません(昔に Win2000、Excel2000 を使っていたことがありましたが、メモリサイズがどうだったかは忘れました)。
ところで、「100KBほどのデータでもフリーズ状況に陥ってしまいます」とのことですが、この「100KBほどのデータ」というのはどうやって分かったのですか?

QFROM テーブル 名前 ?

SQLについての質問です.

select a.name, b.id
from テーブルA a
テーブルB b
where...

というSQLのfromのあとはどういう意味なのでしょうか?
テーブルAと同じ型のaを作る
という意味なのでしょうか??

Aベストアンサー

厳密に書くと

SELECT a.name, b.id
FROM テーブルA AS a ,
テーブルB AS b
WHERE...

となります。
FROM句で宣言している
テーブルA AS a
は、
「テーブルAをaという名前で扱いなさい」
という意味。

もちろん
SELECT テーブルA.name, テーブルB.id
FROM テーブルA ,
テーブルB
WHERE...
と書いても同意ですが、
SELECT句にいちいち
テーブルA.* , テーブルA.** , テーブルA.***
と書くのは面倒ですよね。

さらに、副問い合わせや、同一テーブルを別々に扱いたい場合などなどなど・・・・
様々な場面で AS を使うことで、すっきりと見やすいSQL文を作ることも可能です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング