0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【OracleDB】PLSQLの%TYPE属性を指定していたらADBのアプデでエラーになった

Posted at

はじめに

本日、システムを利用するとシステム処理が【ORA-06552: PL/SQL: Compilation unit analysis terminated】とコンパイルエラーを吐いて実行できない状態となっていました。

原因としては、【ADBS-25.4.3.2】のアップデートがAutonomousDBに先週末行われているのですが、それによってプログラムのどこかに問題が発生し、コンパイルエラーが発生している状況でした。

何が問題なのかを洗い出していったところ、思わぬところでエラーとなっていました。

PLSQLの%TYPE属性でエラー

エラーとなっていたのは、以下の2か所でした。
l_chid conversation_history.CHID%TYPE;
l_answer conversation_history.ANSWER%TYPE;

どちらも、テーブルの文字列項目を参照するように指定していただけでそれ単体では問題とはいえない箇所でネットやChatGPTで調べてもシステムのエラーからこの2つは洗い出せませんでした。

ただし、エラーの内容にVector型の項目をコンパイルする際にエラーとなっていると表記されており、テーブルにかかわる部分に問題があるとわかりました。

その為、今回の問題として先週のアップデートにより該当のテーブルにVector型が存在する状態で%TYPE属性を指定するとVector型の判断ができずにエラーとなっていたようです。

以下のように文字列として変数を書き換えて、処理を実行することでコンパイルが通るようになりました。

l_answer VARCHAR2(32767);
l_chid VARCHAR2(32767);

先週までは何も問題なかった

今回の事象で何が最も恐怖だったのかといえば、先週末までは動作しており突如としてコンパイルエラーとなっていた点です。

ADBのメンテナンスは、1週間前に実行することが可能であり、そこで検証することが大切であることを知りました。

まとめ

ADBは、自動でアップデートを行ってくれる為、助かる反面こうしたアップデートによる問題も考慮した対応が必要です。

また、こうした%TYPE型で影響が出るなどの問題はこうして共有して情報を早く得られるようにしていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?