启用探查器后,在 PLSQL 开发人员中运行以下代码块时,出现以下错误。你知道其中的原因吗?下面我附上了我使用过的查询。以下查询是我从 AWR 报告中得到的。
DECLARE
return_array_ Post_Imported_Obj_Trans_Handling_SVC.Number_Arr;
cursor_ SYS_REFCURSOR;
BEGIN
return_array_ := Post_Imported_Obj_Trans_Handling_SVC.Do_Make_Accnt_Import_Trans(:1 , :2 , :3 , :4 , :5 , :6 , :7 , unbound## => '');
OPEN cursor_ FOR SELECT * FROM TABLE(return_array_);
:8 := cursor_;
END;
我在下面附上的错误图像
您可以通过删除并重新创建相关分析器表来修复此错误。
PL/SQL Developer 通常会检测是否缺少必要的分析表,并会提示您创建它们。此错误意味着可能只有一个表丢失,或者某些列可能是意外的。也许您很久以前在旧版本的 Oracle 或 PL/SQL Developer 上创建了分析表,并且缺少一些新需要的列。
首先,从运行探查器的架构中删除这三个表:
drop table PLSQL_PROFILER_DATA;
drop table PLSQL_PROFILER_UNITS;
drop table PLSQL_PROFILER_RUNS;
接下来,打开一个新的测试窗口,然后单击“创建 Profiler 报告”按钮:
这将打开一个新对话框,要求创建相关表。点击“是”:
现在您应该能够运行探查器了。