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

कई तालिकाओं से ओरेकल का चयन करें

जहां तक ​​इस आवश्यकता का संबंध है, यह निश्चित रूप से डेटा मॉडल के साथ एक समस्या है। मैं दो विकल्प सुझा सकता हूं:

विकल्प# 1: सभी तालिकाओं को मिलाकर एक एकल तालिका SPORTS बनाएं और एक कॉलम sport_type रखें। यह फ़ंक्शन में एक चुनिंदा क्वेरी का उपयोग करने की अनुमति देगा।

select  HOME,AWAY,COMP_NAME, M_TIME from SPORTS s
where s.HOME LIKE (:p_search_string) or s.AWAY LIKE (:p_search_string)
  and sport_type in 
(
'SOCCER',
'BASKETBALL',
'HANDBALL',
'ICE_HOCKEY',
'TENIST',
'VOLLEYBALL'
)

विकल्प# 2:

Create a view by combining all these tables and select from that view in this function.
CREATE OR REPLACE VIEW VW_SPORTS
AS
select HOME,AWAY,COMP_NAME, M_TIME, 'SOCCER' SPORT_TYPE from SOCCER
union all
select  HOME,AWAY,LISTS,M_TIME,'BASKETBALL' SPORT_TYPE from BASKETBALL 
union all
select HOME,AWAY,COMP,M_TIME,'HANDBALL' SPORT_TYPE from HANDBALL
union all
select  HOME,AWAY,LISTS,M_TIME,'ICE_HOCKEY' SPORT_TYPE from ICE_HOCKEY
union all
select  HOME,AWAY,COMP,M_TIME,'TENIST' SPORT_TYPE from TENISt
union all
select  HOME,AWAY,LISTS,M_TIME,'VOLLEYBALL' SPORT_TYPE  from VOLLEYBALL v;


 FUNCTION SEARACH_FOR_GAMES  ( p_search_string in varchar2 )
                             return weak_cur
  IS
    SEARCH_FIXID WEAK_CUR;   
  BEGIN  
    OPEN   SEARCH_FIXID FOR
       select  HOME,AWAY,COMP_NAME, M_TIME from VW_SPORTS s
        where s.HOME LIKE (:p_search_string) or s.AWAY LIKE (:p_search_string)
         and s.SPOR_TYPE IN 
    (
    'SOCCER',
    'BASKETBALL',
    'HANDBALL',
    'ICE_HOCKEY',
    'TENIST',
    'VOLLEYBALL'
    );
    RETURN SEARCH_FIXID;
  END SEARACH_FOR_GAMES;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक कॉलम में दोहराए जाने वाले मान

  2. कैसे Oracle नियमित अभिव्यक्ति के साथ स्ट्रिंग से सभी संख्या अनुक्रमों को बाहर निकालने के लिए?

  3. Oracle के साथ पेजिंग

  4. Bअशक्त मान के कारण डेटा प्रदर्शित नहीं हो रहा है

  5. SQL क्वेरी स्ट्रिंग में अमान्य वर्ण (ORA-00911)