質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

Q&A

解決済

2回答

4697閲覧

ツール作成中のエラー(PL/SQL)

jmjabc0307

総合スコア7

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

0グッド

0クリップ

投稿2017/09/17 09:33

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)バッチで.sqlを実行し、DB内の該当レコードを削除するツールを作っています
(バッチで条件を指定する)
エラーメッセージ出力され実行できません。
ORACLEの問題なのでしょうか?(ORACELE12Cを使用しています)
###発生している問題・エラーメッセージ

ORA-20003:ORU-10036:object sumple is invalid and cannot be described ORA-06512:"SYS.DBMS_DESCRIBE",行147 ORA-06512:行1

###該当のソースコード

plsql

1以下がエラーメッセージに該当するソースです。 2```1>>>create or replace procedure sumple 3 2>>> 4 3>>>IS 5678 143>>>EXCEPTION 9 144>>>when others 10 145>>>then 11 146>>>DBMS_OUTPUT.PUT_LINE(SQLCODE||':'||SQLERRM); 12 147>>>RAISE 13 148>>>END MY_LOG_OUT 14 15###試したこと 16A5M2のストアプロシージャで実行 17###補足情報(言語/FW/ツール等のバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

USER_OBJECTS.STATUS が 'INVALID' のオブジェクトについて依存関係が複雑な場合を考慮して複数回コンパイルするのがミソ。Oracle Objectの強制コンパイル

投稿2017/09/17 14:46

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

提示のコードは例外処理部分で、実際にその箇所でエラーが起きているわけではありません。

エラーコードを見ると以下が参考になるでしょう。
データベース・トラブル10選---最終回 SQL文の異常終了を防ぐ(1)

以下抜粋。

ORA-20003 は,DBMS_DESCRIBEパッケージの“DESCRIBE_PROCEDURE”と呼ぶプロシージャが発行するエラーである。ストアド・プログラムを実行する際は,このプロシージャに引き数としてオブジェクト名(プロシージャ名)を与えるが,このオブジェクトが「INVALID(無効)」の状態であったり,存在しなかったりすると,ORA-20003のエラーが発生する。

原因としては、そのストアドプロシージャに関係するテーブルの定義や呼び出しているストアドを変更したような場合にINVALIDになったりします。

状況を確認して再度ストアドをコンパイルすれば良いと思いますが、関係が複雑に入り組んでいたりすると個別に行うのは非常に手間なので一括コンパイルの利用がお薦めです。
ORACLEで無効オブジェクトを一括でリコンパイルする。

但し、共同でのプロジェクトなどで作業されている場合には、他への影響も考えられますから、確認の上行って下さい。

投稿2017/09/17 13:03

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問