PL/SQLの勉強2「Hello World」を深掘りしてみる
前回はPL/SQLで「Hello World」を出力してみました。
本当に「Hello World」と書いているだけで、すごく簡単なのですが…
よかったら見てみてください。
今回は「Hello World」を例にして
PL/SQLはどんなルールで書くのか?をみていきます。
ブロックなるものがあります
PL/SQLは大きく分けて2つの「ブロック」なるものがあります。
それぞれの役割は、以下の通りです。
- declare → 変数を定義するところ(宣言部)
- begin → 処理を書くところ(処理部)
declare(宣言部)について
declare(デクレアと読む…)では「v_str」という変数を定義しています。
PL/SQLで使う変数は、すべてdeclareの中で宣言します。
今日の登場人物は「v_str」さんです!って言っている感じです。
v_strの右にある「varchar2(4000)」は…
変数の型を指定してます。
- varchar2 → 文字列!
- 4000 → 4000byteまでなら入れられる!
ってことですね。
変数はこの他にもnumber型やboolean型とか、もっと色々あります。
なんのこっちゃ?な人は調べてみましょう!
begin(処理部)について
begin(ビギンと読む…)ではこんな処理してね〜なことを書いています。
PL/SQLの処理は、すべてbeginの中で書きます。
ここでは「v_str」という変数に文字列を代入して
「v_str」に入っている値を出力しようとしています。
出力の時の「dbms_output.put_line」はおまじないだと思ってください!
そんなもんです、何も考えずに「こういうもんだ!」と思っちゃえばいいんです!
exception(例外部)について
さて…私は先ほど以下のように言いました。
PL/SQLは大きく分けて2つの「ブロック」なるものがあります。
declareとbeginの2つですね。
でも実は、もう一つあります。
exception(エクセプション)というヤツです。
こんな感じに書きます。
declare
v_str varchar2(10);
begin
v_str := 'Hello World';
dbms_output.put_line(v_str);
exception
when others then
dbms_output.put_line('何かしらのエラーが起こったよ!');
end;
exceptionは「エラー」、つまり例外が起こったときに動く部分です。
例えば上の場合、どんな結果が出力されるでしょうか?
「Hello World」が出力されていませんね。
ここで注目して欲しいのが2行目の「v_str varchar2(10);」です。
v_strっていう変数は10byteまでしか持てないとしています。
10byteを超える文字列を代入しようとして、エラーが起きてるんです。
これは私の考えですが…
プログラムはエラーとの戦いです。予期していないことは必ず起こるので、想定外なことが起きたときにどうする?を考えておく必要があります。
以上ですw
今回は「ブロック」なるものについて
そしてその役割についてお話ししていきました。
どうでしたか?
お疲れ様でした〜!
次回もうす〜い内容で書いていければと思いますw
Discussion
New Comments
No comments yet. Be the first one!