基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
OceanBase 数据库 Oracle 模式查看各类对象上次编译的错误信息
更新时间:2026-05-29 08:46
本文讲述如何在 Oracle 模式下查看各类对象上次的编译错误。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。
操作步骤
在 OceanBase 数据库 Oracle 模式下,创建包、包体、存储过程等对象时,如果提示 warning 信息,可以通过查询 user_errors 视图查看编译过程的具体错误信息。
比如以下例子:创建包报警告,可以通过视图 user_errors 查看到具体原因。
obclient> DELIMITER $$
obclient> create or replace package pkg_slis_cs_sqlutils is
-> TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);
-> procedure p_test(I_pram IN VARCHAR2);
-> function f_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) return ty_str_split;
-> function f_addfix (p_ogiStr IN VARCHAR2,p_length IN NUMBER,p_fixElm IN VARCHAR2, p_isPreOrSur IN NUMBER) return varchar2;
-> function f_is_date (p_datevar in VARCHAR2) RETURN NUMBER;
-> FUNCTION f_splits(p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN cs_array;
-> end pkg_slis_cs_sqlutils;
-> $$
Query OK, 0 rows affected, 1 warning (0.05 sec)
obclient> DELIMITER ;
obclient> select * from user_errors;
+----------------------+---------+----------+------+----------+-----------------------------------------------------------------------------+-----------+----------------+
| NAME | TYPE | SEQUENCE | LINE | POSITION | TEXT | ATTRIBUTE | MESSAGE_NUMBER |
+----------------------+---------+----------+------+----------+-----------------------------------------------------------------------------+-----------+----------------+
| PKG_SLIS_CS_SQLUTILS | PACKAGE | 0 | 1 | 4 | ORA-00600: internal error code, arguments: -5544, Undeclared type: CS_ARRAY | ERROR | -5544 |
+----------------------+---------+----------+------+----------+-----------------------------------------------------------------------------+-----------+----------------+
1 row in set (0.04 sec)
从 errors 可以很快定位到错误原因是类型 CS_ARRAY 未声明。