Oracle

為什麼 SQL Developer 更新 Oracle 數據字典而 SQL*Plus 不更新?

  • January 7, 2017

我將以下程式碼儲存在腳本文件中

create or replace package test_record
is

   type t_test_rec is record(
       name                  varchar2(64)
      ,value                 pls_integer
   );

end test_record;
/

當我從 SQLPlus 執行它時,_IDENTIFIERS 數據字典不會更新以包含類型的聲明。但是,如果我在 SQL Developer 中複製/粘貼相同的程式碼並將其作為腳本 (F5) 執行,則會更新提到的數據字典。

即使我強制從 SQLPlus 重新編譯包,_IDENTIFIERS 表也不會更新,無論我使用什麼方法(alter package …、dbms_utility.compile_schema、dbms_ddl.alter、…)。

如何強制 SQL*Plus 在這方面表現得像 SQL Developer?

SQL Developer 自動設置以下內容:

alter session set plscope_settings='IDENTIFIERS:ALL';

您可以在 SQL*Plus 中使用它。

(預設為IDENTIFIERS:NONE。)

引用自:https://dba.stackexchange.com/questions/160259