2011-08-02 7 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

はほとんどの場合正しいです。私のsysの管理者が私に何かを渡してデバッグして、コード内のそのステートメントを見つけました。私はデータベースをチェックし、そのようなパッケージはありません。たぶん彼と一緒にチェックして、私が進める必要がある残りのアイテムを手に入れてください。 – 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

@Philあなたは正しいです。私は私のポストにオプションを追加します。 – zep