Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Data kueri Oracle di mana nilai kolom dengan koma untuk memeriksa nilainya mengandung atau tidak

Anda perlu memeriksa sub-string yang dikelilingi oleh pembatas:

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

Namun, cara yang lebih baik adalah dengan mengubah tabel database Anda sehingga Anda tidak menyimpan banyak item dalam satu nilai:

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

Kemudian Anda dapat menyimpan nilai satu per satu (dan dengan mudah mencari rentang sub-jaringan) dan menggabungkannya ke tabel profil sesuai kebutuhan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Deteksi kesalahan sqlplus dalam skrip batch dos?

  2. Apakah ada fungsi hash di PL/SQL?

  3. cara memasukkan tanggal saat ini ke dalam bidang TANGGAL dalam format hh/bb/tttt di oracle

  4. SQL Temukan duplikat dengan beberapa bidang (tanpa ID unik) BEKERJA SEKITAR

  5. Memutar tabel secara dinamis Oracle