Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

oracle में एक प्रकार बनाते समय PLS-00201 त्रुटि प्राप्त करना

%TYPE सिंटैक्स पीएल/एसक्यूएल घोषणाओं में उपयोग के लिए है। दुर्भाग्य से हम SQL ऑब्जेक्ट बनाते समय इसका उपयोग नहीं कर सकते। वही %rowtype . के लिए जाता है ।

यदि हम कर सकें तो यह बहुत साफ-सुथरा होगा, क्योंकि create or replace type . का एक सामान्य उपयोग टेबल एपीआई बनाना होगा जैसा आप करना चाहते हैं। हालांकि, डेटा डिक्शनरी में संदर्भ निर्माणों को प्रबंधित करना बहुत जटिल होगा; ध्यान रखें कि टेबल कॉलम सहित अन्य वस्तुओं को परिभाषित करने के लिए प्रकारों का उपयोग किया जा सकता है।

तो अफसोस, आपको इसकी विशेषताओं के लिए स्पष्ट डेटाटाइप के साथ प्रकार घोषित करने की आवश्यकता है:

create or replace type TYPE_EVOL_CONFIG_CHANGE_LOG as object
    (
    F_TABLE_MODIFIED        VARCHAR2(40) ,
    F_OPERATION_PERFORMED   VARCHAR2(30),
    F_ROWS_ALTERED          INTEGER , 
    F_LAST_UPDATED_BY       VARCHAR2(20) ,
    F_LAST_UPDATED_DATE     DATE
);

जाहिर है जब भी किसी T_C_EVO_GAME_CONFIG_CHANGE_LOG कॉलम की संरचना में परिवर्तन होता है, तो आपको इसे मैन्युअल रूप से सिंक करने की भी आवश्यकता होती है। लेकिन अगर आप कोई कॉलम जोड़ते या छोड़ते हैं तो आपको ऐसा करना ही होगा।

वैकल्पिक रूप से आप एक पैकेज में पीएल/एसक्यूएल रिकॉर्ड के रूप में प्रकार को परिभाषित कर सकते हैं। यह आपको रेफरेंसिंग सिंटैक्स का उपयोग करने की अनुमति देगा।

create or replace package game_config as    

    TYPE_EVOL_CONFIG_CHANGE_LOG is record
    (
        F_TABLE_MODIFIED        T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_TABLE_MODIFIED%TYPE ,
        F_OPERATION_PERFORMED   T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_OPERATION_PERFORMED%TYPE,
        F_ROWS_ALTERED          T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_ROWS_ALTERED%TYPE , 
        F_LAST_UPDATED_BY       T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_LAST_UPDATED_BY%TYPE ,
        F_LAST_UPDATED_DATE     T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_LAST_UPDATED_DATE%TYPE
    );

    -- or even
    TYPE TAB_EVOL_CONFIG_CHANGE_LOG is table of T_C_EVO_GAME_CONFIG_CHANGE_LOG%rowtype;
end;

यह निर्भर करता है कि आप अपने विस्तृत एप्लिकेशन में टाइप का उपयोग कैसे करना चाहते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डेटाबेस में RAISE_APPLICATION_ERROR विधि का उपयोग करके उपयोगकर्ता-परिभाषित अपवाद घोषित करें

  2. ऑरैकल एसक्यूएल में तिथि के अनुसार समूहीकृत डेटा

  3. Oracle क्वेरी में HTML डेटा को संभालना

  4. Oracle के साथ लंबा मुद्दा क्यों है?

  5. नल डालने पर डिफ़ॉल्ट मान डालें