こんにちは。
タイトルについて。
いまの現場で、初めてのストアドを作成中です。
「ストアド?ふつうのSQLと同じでしょw」
みたいな認識でしたが、
全然違いました!
今までの認識と違った点
(※今まで=javaやiBatisでの書き方)
項目 |
今まで |
ストアド(PL/SQL) |
備考 |
変数への代入方法 |
変数 = 123 |
変数 := 123 |
なにこのコロン! |
WHERE句 文字列型変数の扱い |
WHERE ID = 変数 |
WHERE ID = '''' ||変数 || '''' |
文字列連結の時、 シングルクォートを明示する |
文末の書き方 |
特に意識せず |
セミコロン必須 |
プログラムと同じ感じ |
IF文の書き方 |
IF(true){ } ELSE{ } |
IF true THEN ELSE END IF; |
ここで終わるよって 明示しなきゃダメ |
引数の書き方 |
classA(String name){ ... } |
sampleProc( CHAR IN name } |
IN、OUT INOUTのどれかを書く |
変数の定義 |
String name = new String(); |
name CHAR(100); |
サイズを指定をする |
SQLの実行方法 |
dao.executeQuery(); みたいな |
execute immediate SQL変数;または SELECT ▽△ FROM TABLE を 一行で書く |
お作法の違いかな |
動作環境がSQLServerか、Oracleでも色んな違いがありました。
...というのも、
今のお仕事がSQLServeからOracleへのストアド焼き直しなのです。
「全部コピペで追加仕様だけあとで書けばいいや」
↓
↓
( ゚Д゚)
どこでエラーなんか書けやゴラアァァ!!!!(;゚Д゚)
なんてことになりました。
サボれなかったよ...。
この辺はググって、「なんとなくこれっぽいな」で書いたらコンパイルエラーが解消されました。
うーむ。楽しい。
↓参考にさせていただいたページ
el.jibun.atmarkit.co.jp
d.hatena.ne.jp