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

Oracle क्वेरी डेटा जहां मूल्य की जांच करने के लिए अल्पविराम के साथ स्तंभ मान शामिल है या नहीं

आपको सीमांकक से घिरी एक उप-स्ट्रिंग की जांच करने की आवश्यकता है:

SELECT PROFILEID
FROM   WA_BT_TBL_PROFILE P
WHERE  ', ' || P.ALLOWED_IP_ADDRESS || ', ' LIKE '%, 192.168.183.28, %';

हालाँकि, एक बेहतर तरीका यह होगा कि आप अपनी डेटाबेस तालिका को बदल दें ताकि आप एक से अधिक आइटम को एक मान में संग्रहीत न कर सकें:

CREATE TABLE Allowed_IP_Addresses(
  PROFILEID          VARCHAR2(20)
                     CONSTRAINT AllowIP__ProfileID__FK REFERENCES WA_BT_TBL_PROFILE( PROFILEID ),
  CLASSA             NUMBER(3,0),
  CLASSB             NUMBER(3,0),
  CLASSC             NUMBER(3,0),
  CLASSD             NUMBER(3,0),
  IP_ADDRESS         VARCHAR2(15)
                     GENERATED ALWAYS AS (CLASSA||'.'||CLASSB||'.'||CLASSC||'.'||CLASSD) VIRTUAL,
  CONSTRAINT AllowIP__P_A_B_C_D__PK PRIMARY KEY ( PROFILEID, CLASSA, CLASSB, CLASSC, CLASSD )
);

फिर आप मूल्यों को अलग-अलग स्टोर कर सकते हैं (और आसानी से सब-नेट श्रेणियों की खोज कर सकते हैं) और आवश्यकतानुसार प्रोफ़ाइल तालिका में शामिल हो सकते हैं।



  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. एसक्यूएल (ओरेकल):ऑर्डर बाय और लिमिट

  3. Oracle - एक क्वेरी के रूप में कई मायने रखता है

  4. ओरेकल:क्या स्कीमा के लिए समानार्थी बनाना संभव है?

  5. ऑरैकल चुनिंदा कथन से कॉलम नाम पढ़ें