Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dane zapytania Oracle, w których wartość kolumny z przecinkiem do sprawdzenia wartości zawiera lub nie zawiera

Musisz sprawdzić podciąg otoczony ogranicznikami:

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

Jednak lepszym sposobem byłaby zmiana tabeli bazy danych, aby nie przechowywać wielu elementów w jednej wartości:

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 )
);

Następnie możesz przechowywać wartości indywidualnie (i łatwo wyszukiwać zakresy podsieci) i w razie potrzeby dołączyć je do tabeli profili.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 12c Autopopulacja kolumny z wartością sekwencji

  2. Jak zmusić funkcję w klauzuli where do jednorazowego wykonania w Oracle?

  3. ORA-00927:brak znaku równości

  4. 2 funkcje, które zwracają miesiąc z daty w Oracle

  5. Hibernate zapisuje nieaktualne dane dzięki hibernate.jdbc.batch_versioned_data