初めて自分の家と他人の家が違う、と意識した時

こんばんは。PL/SQLのエラーについて質問させて頂きます。
現在、Oracle8.1.7のデータベースを使用したオラクルのE-business Suiteという人事系システムで開発をしています。
そこで、SQL*Plusを使用してPL/SQLのパッケージをコンパイルしたところ、パッケージ仕様部も本体部もコンパイルのエラーは出なかったのですが、E-business SuiteにPL/SQLを設定し、動作させようとしたら、下記のようなエラーが発生しました。
--------------------------------------------------------------------
FDPSTP 内のOracleエラー 6550

原因: ORA-06550: 行 1、列 7:
PLS-00221: 'ZT_TYOUHYOU_HENSEI_PKG'がプロシージャではないか、または未定義です。
ORA-06550: 行 1、列 7:
PL/SQL: Statement ignored
が原因で FDPSTP に失敗しました。
---------------------------------------------------------------------

また、作成したPL/SQLパッケージの仕様部は下記のとおりです。

--------------------------------------------------------------------
CREATE OR REPLACE PACKAGE APPS.ZT_TYOUHYOU_HENSEI_PKG AS

FUNCTION get_henseihyo_kbn
(i_grade IN VARCHAR2,o_hensei_kbn OUT VARCHAR2)
RETURN NUMBER;

<・・・・・中間部分は省略・・・・・>

PROCEDURE main_shori
(p_process_date IN VARCHAR2,
p_location IN VARCHAR2);

END ZT_TYOUHYOU_HENSEI_PKG;
--------------------------------------------------------------------
原因だと思われる心当たりの部分も探してみたのですが、このエラーの意味は何なのか、原因はどこにあるのか分かりません。
どなたかお判りの方、御回答よろしくお願い致します。

A 回答 (1件)

PL/SQL のエラーメッセージから判断すると、ZT_TYOUHYOU_HENSEI_PKG が


プロシージャではないと言う事です。
globe8 さんの書かれたパッケージ仕様部を見ると、ZT_TYOUHYOU_HENSEI_PKG
がプロシージャではなく、パッケージになっているのが原因ではないでしょうか?
パッケージ内のプロシージャ名は指定されているのでしょうか?

パッケージ内のプロシージャを呼び出す場合は、
パッケージ名.プロシージャ名 (例:DBMS_OUTPUT.PUT_LINE) のように
指定する必要があります。
どうしても分からないようであれば、一度トレースを採取してみてエラーが
発生している前後でどのようなSQL が実行されているか確認されてみては
いかがでしょうか?
    • good
    • 0
この回答へのお礼

muyoshidさん、こんばんは。
早速の御回答有難うございます。
調べてみたところ、やはり御指摘のありましたとおり、パッケージ内のプロシージャを指定していなくて出たエラーでした。
ZT_TYOUHYOU_HENSEI_PKG.main_shoriと設定したら、プロシージャを呼び出せるようになりました。
助かりました、改めて有難うございました!

お礼日時:2002/10/11 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報