2011-08-02 63 views
0

我有這樣的說法:簡單PLSQL(甲骨文)的語法問題

SELECT passwdlib.piv_insertPasswd(:A1, :A2) 
    FROM DUAL 

我猜測piv_insertPasswd是功能或SP名稱,passwdlib是用戶名。我對嗎?如果不是每個組件是什麼?

回答

3

passwdlib可能是包名。請參閱http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96624/09_packs.htm

否則,它是一個模式名稱。

+0

最有可能是正確的。我的系統管理員給我一些調試,我發現代碼中的聲明。我檢查了數據庫,並沒有這樣的包。也許我應該與他聯繫,以獲取我需要繼續執行的其他項目。 – Haoest

+0

@Haoest'passwdlib'也可以是一個不同包名的公共同義詞 – Phil

+1

如何在字典中沒有調查的情況下如何說呢?它也可以是一個對象類型 – zep

2

它更可能是passwdlib是軟件包名稱,piv_insertPasswd是軟件包中函數的名稱。

+0

1秒! – Phil

2

模式,包,對象,同義詞。

select object_type 
from user_objects uo 
where uo.OBJECT_NAME = 'PASSWDLIB' 

select typecode 
from user_types ut 
where ut.type_name = 'PASSWDLIB' 

select * 
from USER_METHOD_PARAMS um 
where um.type_name = 'PASSWDLIB' 

2°部:柱後添加被標記爲回答。 我認爲在這種情況下正確的方法是查詢字典,沒有它,我們只是試圖猜測!

測試對象選項。

CREATE TYPE TPerson AS OBJECT (
    idno   NUMBER, 
    first_name  VARCHAR2(20), 
    last_name  VARCHAR2(25), 
    email   VARCHAR2(25), 
    phone   VARCHAR2(20), 

    static FUNCTION getDetails return varchar2); 
/

create type body TPerson as 

    static function getDetails return varchar2 is 
    begin   
     return 'I am TPerson type '; 
    end; 
end; 
/

select TPerson.getDetails() from dual; 

輸出

select TPerson.getDetails() from dual; 

TPERSON.GETDETAILS() 
-------------------------------------------------------------------------------- 
I am TPerson type 

調查

select object_type,uo.* 
from user_objects uo 
where uo.OBJECT_NAME = 'TPERSON'; 


OBJECT_TYPE   OBJECT_NAME                  SUBOBJECT_NAME     OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE   CREATED  LAST_DDL_TIME TIMESTAMP   STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME 
------------------- -------------------------------------------------------------------------------- ------------------------------ ---------- -------------- ------------------- ----------- ------------- ------------------- ------- --------- --------- --------- ---------- ------------------------------ 
TYPE    TPERSON                            23020    TYPE    02/08/2011 02/08/2011 07 2011-08-02:07:50:57 VALID N   N   N     1 
TYPE BODY   TPERSON                            23021    TYPE BODY   02/08/2011 02/08/2011 07 2011-08-02:07:50:57 VALID N   N   N     2 



select typecode,ut.* 
from user_types ut 
where ut.type_name = 'TPERSON'; 


TYPECODE      TYPE_NAME      TYPE_OID       TYPECODE      ATTRIBUTES METHODS PREDEFINED INCOMPLETE FINAL INSTANTIABLE SUPERTYPE_OWNER    SUPERTYPE_NAME     LOCAL_ATTRIBUTES LOCAL_METHODS TYPEID 
------------------------------ ------------------------------ -------------------------------- ------------------------------ ---------- ---------- ---------- ---------- ----- ------------ ------------------------------ ------------------------------ ---------------- ------------- -------------------------------- 
OBJECT       TPERSON      711EFA23BE614F1BAFE0D741324DB215 OBJECT         5   1 NO   NO   YES YES                        
+1

別忘了同義詞 – Phil

+0

@你說得對。我會在我的文章中添加該選項。 – zep