2014年6月24日火曜日

ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした

問題記述

PL/SQL PACKAGE再コンパイル後、

ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした

というエラーメッセージが出された。

解決方法

AP再起動

パッケージ等が起動されたセッションは、その時の最新更新日時を保持
していて、起動時にパッケージ等の最新更新日時と比較します。従って、セッ
ションを保持したまま、別セッションでパッケージ等が更新された場合、セッ
ションが保持しているパッケージ等の情報が古いと判断されエラーが発生しま
す。              

2014年6月13日金曜日

BIZ用語

■相見積(あいみつ)
複数の取引先・業者から見積もりを取り、条件のいいところを選ぶこと

■赤黒、赤黒処理 (あかくろしょり)
会計情報を訂正する方法の1つ。いったん計上した金額を修正したい場合に、元の金額を直接修正するのではなく、
元の金額を帳消しにするマイナスの金額(赤)と、正しいプラスの金額(黒)の2つを新たに計上する。
これにより訂正の記録を残すことができる。 伝票であれば、誤りがあった元の伝票を書き換えずに、
元の書類の内容を打ち消す伝票と、差替え伝票の2枚を起票する。このうち、打ち消す伝票を「赤伝票」、差替え伝票を「黒伝票」とよぶ。

■アポ (appointment)
アポを取ってくれ

■一件一葉(いっけんいちよう)
一件ごとに一枚の書類を作る、の意味です。

■エスカレーション
自分が解決できない問題を自分より上の人間に任せること。
もし無理なら、エスカレーションにしよう。

■落とし所(おとしどころ)
もめ事や話し合いの妥協点。双方が納得する決着点。
交渉の落とし所を探る。

■サチる(saturate) : 飽和する、収束(しゅうそく)する の意味
  仕様変更は増え続けて、サチらないですね。

  
■サマる(summary) :要約する、まとめる の意味
  資料をサマって、提出してください。

■棚卸(たなおろし)
在庫の数を数えること

■デポ(depot)
倉庫、貯蔵所

■歩留まり(ぶどまり)
加工する場合の、使用原料に対する製品の出来高の比率。
歩留まりが良い。
歩留まりが悪い。

■ロハ
無料
今回の変更ロハでいいの?

■FYI
For Your Information(ご参考まで)
普通に言えば、文書引用あるいは転送の場合、FYIと書きます。

2014年6月10日火曜日

sqlplus ストアドプロシージャの実行

■コマンド execute

①OUT引数がない時
execute(またexec) プロシージャ名(引数1,引数2,・・)

②OUT引数がある時
VAR v_out NUMBER;

execute(またexec) プロシージャ名(引数1,引数2,・・ :v_out );

例:

SQL>
SQL> variable v_out NUMBER;
SQL> execute  main_proc('引数1', '引数2', :v_out);
SQL> print v_out;
SQL>

[PLS-00201: 識別子V_OUTを宣言してください。]が表示された時、v_out 前に、[:]が付いてるかどうか、確認して下さい。


■SERVEROUTPUT は DBMS_OUTPUT による PL/SQL の標準出力を非表示にするか、出力を許可して任意にバッファサイズを設定する。
•短縮形は SERVEROUT
•デフォルト値 OFF
SET SERVEROUTPUT コマンドの構文

SET SERVEROUTPUT ON [SIZE n]


CREATE OR REPLACE function test_proc return boolean
IS
CURSOR cur_param IS
    SELECT DEF_NAME
      FROM NAME_DEF_LIST
     WHERE NAME_DEF_CD like 'XXXX%';
name_def  varchar2(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('test_proc start');

open cur_param;
loop
 fetch cur_param into name_def;
 exit when cur_param%notfound;
 DBMS_OUTPUT.PUT_LINE('>>' || name_def);
end loop;
close cur_param;
DBMS_OUTPUT.PUT_LINE('test_proc end');
return true;
EXCEPTION
WHEN others THEN
 DBMS_OUTPUT.PUT_LINE('..error..');
 return false;
END;
/

メイン処理:

CREATE OR REPLACE procedure P17GK_V200_MNT_EN.test_main
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('main start');
boolean rtn;
rtn := test_proc();
DBMS_OUTPUT.PUT_LINE('return ' || rtn);

EXCEPTION
WHEN others THEN
 DBMS_OUTPUT.PUT_LINE('..error..');
END;
/