PL/SQL
なんでかなぁ 変数の宣言が先 順序が違うとPLS-00320: この式の型の宣言が不完全か、または形式が誤っています。 となる wk_cd CHAR(02 CHAR) := '00'; CURSUR c1 IS SELECT cd_name FROM hoge WHERE cd = wk_cd ; c1_record c1%type; %NOTFOUNDはカーソル属…
違反と言われているカーソルでGREPしても同じ名前のは無いんだが。 何がダメなんだろう。。。 Error(x,y): PLS-00305: 'cursor_test01'(行100)の以前の使用方法が、この使用方法と競合します。 ~~~~~~ と思ったらカーソルの書き方間違えた。 cursor cu…
カーソル カーソルには二種類あって、暗黙カーソルと明示カーソルに分かれる。 明示カーソル 明示的にOPEN~CLOSEするカーソル(そのまんま)。 OPEN c_1; FETCH c_1 INTO paramCd; CLOSE c_1; 暗黙カーソル 明示カーソル以外のすべてのSQL処理で内部的に使用…
DBMS_METADATA による定義文の取り出しDBMS_METADATA 使用例 - オラクル・Oracleをマスターするための基本と仕組み DBMS_METADATA 使用例 - オラクル・Oracleをマスターするための基本と仕組み
WHENEVER SQLERROR コマンド SQLを発行しているときに何かしらのエラーが出たら続行するか途中でやめるか、オプションで指定できる。 EXIT(終了)する場合 WHENEVER SQLERROR EXIT [ SUCCESS | FAILURE | WARNING | 戻り値(※)] [ COMMIT | ROLLBACK ] (※) …
hoge_date='2014-09-20' デフォルトは'DD-MON-YY'.
select * from v$nls_parameters;
TYPE TYPE_HOGE IS VARRAY(100) OF VARCHAR2(2); var_hoge TYPE_HOGE := TYPE_HOGE(''); 配列の初期化、とりあえずブランクで。
キーワードはRAISE RAISE hogeException で指定の例外を発生させることが可能。 javaで言うなら throw new Exception(); テストで実施するなら RAISE_APPLICATION_ERROR(-20000, 'ほげほげエラー'); と書くと便利。
形式 TYPE 配列名 IS VARRAY(size) OF データ型 [NOT NULL]; TYPE type_hoge IS VARRAY(99) OF VARCHAR2(2); 配列を使うとき vWK_type_hoge type_hoge := type_hoge(); vWK_type_hoge (1) := '01';
http://www.shift-the-oracle.com/sql/number-format-element.html 'hoge' || to_char(1, '00') と打つと、 hoge 01 と、謎のスペースが入るけど、 'hoge' || to_char(1, 'FM00') とすると hoge01 になる。
めもめも。 ---何かの処理 Exception WHEN OTHERS THEN --それ以外の例外のときに入るので、この場合、全例外がこのなかにはいる 処理。 end
UTL_FILEとか DBMS_OUTPUTとか、どこかのファイルに処理が書いていないかなーとローカルフォルダをGREPしてもぜんぜん見つからないので変だなと思ったら、 もともと入っているパッケージだった罠。
基本的に3パターン。 基本 LOOP --処理とか --抜けたい場合はEXIT文 IF hoge = NULL EXIT; END IF; END LOOP; FOR-LOOP FOR count IN 0..5 LOOP --処理とか END LOOP; カウントループ0から開始して5回回す。 WHILE-LOOP WHILE hoge = NULL LOOP --処理 END L…
プロシージャー内の実行部で処理を行う前に宣言部で記述しておくと、実行部でそれを呼び出すことが可能になる。 CREATE OR REPLACE PROCEDURE hoge ( inParam in VARCHAR2, outParam OUT NUMBER ) IS CURSOR curTest IS SELECT xxx, … WHERE … ; PROCEDURE p…