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 1 year has passed since last update.

【PL/SQL備忘録 1】SQL中で変数を使用する

Posted at

今回の備忘録を書くことにした理由

 2023年3月、文系未経験の新卒として入社した会社での実務が開始して半年ほどが経過した頃、今までまったく触れた経験のないPL/SQLの案件へ唐突にアサインされることとなりました。
 PL/SQLに関する研修や勉強期間等も設けられないままなんやかんやで開発がスタートしましたが、いかんせんややマイナーな言語であるため調べてもあまり情報がヒットせず…。案の定基礎的な部分で躓きまくっている(現在進行形)ため、ひとまず業務で学んだことを忘れないように簡単にですがまとめていこうと考え記事にしました。

SQL中で変数を使用する方法

 PL/SQLなんだからそりゃそうでしょうという感じではありますが、宣言した変数をそのまま使えるので直感的にSQLを書くことができるという話を会社の先輩から教わり、少し感動しました。以前VB.netの開発を行った際(DBはOracle)はバインド変数を使用し、当時はバインド変数が何者かもよく分かっていませんでしたので困惑した記憶がありますが、PL/SQLでは以下のように簡単に書くことが可能でした。
 なお以下の例はかなり雑にまとめています。実務ではFUNCTIONの呼び出し元でカーソルからフェッチした値を引数に指定し、FUNCTIONの方でその引数をSELECT文のWHERE句の条件にするような形で使用しました。

例: WHERE句で使用する

// NUMという名前のNUMBER型の変数を宣言する。
NUM        NUMBER;
// SELECT結果格納用変数を宣言する。
RESULT     VARCHAR2(100);

// NUMに5を代入する。
NUM := 5;

// 年齢が5歳(※NUMの値によって変化)の生徒の名前を取得して変数RESULTに格納する。
SELECT NAME
INTO RESULT
FROM STUDENT
WHERE AGE = NUM
;

まとめ

正直備忘録を書くほどの内容でもなく、プログラミング全般の知識が浅いため内容に誤りがあるかもしれませんが、細切れでもアウトプットしていくことによって理解が深まるかなと思いますので簡単にまとめてみました。まだ案件は継続中なので後日また学びを得ることができましたら追記・修正を行っていきたいと思います。

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?