问题描述
我查询DBA_OBJECTS表,发现dba_projects表中存在的packages下的所有过程的名称在DBA_OBJECTS表中不存在为对象。DBA_OBJECTS中的包只有一个条目,而包中的过程没有条目。
DBA_OBJECTS中有一个名为SUBOBJECT_NAME的列。我假设当涉及到包中的过程时,OBJECT_NAME将是包名称,SUBOBJECT_NAME将是过程名称。
程序不是Oracle中的单个对象吗?为什么软件包下的程序与独立程序不同?
DBA_OBJECTS中有一个名为SUBOBJECT_NAME的列。我假设当涉及到包中的过程时,OBJECT_NAME将是包名称,SUBOBJECT_NAME将是过程名称。
程序不是Oracle中的单个对象吗?为什么软件包下的程序与独立程序不同?
OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE PROCEDURE_NAME SUBPROGRAM_ID -------------------------- ------------------------------- ---------- ------------- --------------------------- ------------- ABCD_OWNER P_DAIETRICS 146838 PROCEDURE 1 ABCD_OWNER EXISTS_PARTIN 146837 PROCEDURE 1 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_DEALERS2 1 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PROPOSALS2 2 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PROP_PARTY_ANEX 3 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_MODEL_DERIV 4 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_STATUS_CHANGES 5 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_STATUS_BREAKDOWN 6 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PROPOSAL_DELICH 7 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_RAMDONEES_INFO 8 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_VEHICLE_BLOW 9 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_TRADING_CHOPS 10 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PRODUCTS2 11 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PROP_RAMIF 12 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PRODUSIL_UW 13 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_HIST_DWELL 14 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_AGGREMLIN_DAY 15 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_AGGREMLIN_HOUR 16 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_PIGSTAAL_BREAK 17 ABCD_OWNER PK_PHASE 146835 PACKAGE GOPHS_NEWDAB_LVOMMENSTS 18 ABCD_OWNER PK_PHASE 146835 PACKAGE CHECKRAINTREE 19 ABCD_OWNER PK_PHASE 146835 PACKAGE P_DEL_USEFELNEW 20 ABCD_OWNER PK_PHASE 146835 PACKAGE 0 ABCD_OWNER PK_BIES 146836 PACKAGE 0 DBA_OBJECTS OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE SUBOBJECT_NAME -------------------------- ------------------------------- ---------- ------------- ------------------------------ ABCD_OWNER PK_PHASE 146835 PACKAGE ABCD_OWNER PK_BIES 146836 PACKAGE ABCD_OWNER EXISTS_PARTIN 146837 PROCEDURE ABCD_OWNER P_DAIETRICS 146838 PROCEDURE ABCD_OWNER PK_BIES 147312 PACKAGE BODY ABCD_OWNER PK_PHASE 147313 PACKAGE BODY
专家解答
在Oracle中,* package * 是对象,而不是其中的子组件例程 (过程,函数,类型,游标,常量等)。
包级别是有意义的,因为我们做的事情
-创建同义词
-分配赠款
-编译
全部位于包/包主体,而不是子组件级别。
同样,独立的过程或函数是一个对象,原因与上述相同。它们可以是同义词,被授予等。
希望这有所帮助。
包级别是有意义的,因为我们做的事情
-创建同义词
-分配赠款
-编译
全部位于包/包主体,而不是子组件级别。
同样,独立的过程或函数是一个对象,原因与上述相同。它们可以是同义词,被授予等。
希望这有所帮助。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




