0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQL*Plusで複数の文を一度に流す方法

0
Last updated at Posted at 2019-10-08

始めに(自己紹介)

最近SierからWebエンジニアになろうと思って勉強を始めました
今回の記事もその一環で、何かアウトプットの練習がしたいと思っての記事です
かなり初歩的かつわかりづらい内容かと思いますがご容赦ください

対象

SQL超初心者

概要

先輩からいくつかのテーブルの中身を消しておいてほしい
でも一文ずつ書くと間違えるかもしれないから一度で対象の全テーブルの中身を消すように
・・・とのこと(信用がない)

恥ずかしながらこれまで自分でSQL文を書いたことがなかったので
ググりながら書いてみた

探してもあまりピンとくる情報がなかったので(調べ方が悪いのか)
Qiita初投稿ネタついでに備忘として残しておこうと思う

本編

一つ目

delete from table1, table2, ... , tablen
みたいな文を流してみた
・・・エラー

どうやら複数のテーブルに対して一度にデリートはできないらしい
JOINで結合やらをしたら複数のテーブルからの削除はできるらしい。
下記、参考までに
複数テーブルからDELETE
ただ複数テーブルの全件削除の方法は見つからなかった

二つ目

ここから記事のタイトルにあるものを実践することになります
どうやらSQLPlusは入っているようだったので、SQLファイル(.sql)に
必要なSQL文を全部詰め込んで、それをSQL
Plusで流し込むという方法を取ることにした
SQL*Plusとは

cd SQLファイルがある場所のパス
sqlplus ユーザID/パスワード
@SQLファイル名

sqlファイルの中身はこんな感じ

delete from table1
delete from table2
...
delete from tablen

これを流してみた
・・・最後の一文しか実行してない・・・

三つ目

文の区切りとして、セミコロン(;)がないとダメらしい

delete from table1;
delete from table2;
...
delete from tablen;

これで再度実施
・・・やっと出来た
ちなみにファイルの後ろにexitがないと実行と同時のコミットはしないっぽい

終わりに

このくらいの記事書くのにもなかなか時間がかかった
今はProgateなどでインプット中心だけど、そこで引っかかったところとか
書いていきたいな〜と思ってます

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?