Oracle PL/SQL/Regular Expressions/Case

Материал из SQL эксперт
Перейти к: навигация, поиск

[:lower:] matches lowercase characters

SQL> create table TestTable(
  2    ID                    VARCHAR2(4 BYTE)         NOT NULL,
  3    Description           VARCHAR2(30 BYTE)
  4  )
  5  /
Table created.
SQL>
SQL>
SQL> insert into TestTable (ID, Description) values("1","1234 5th Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("2","1 Culloden Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("3","1234 Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("4","33 Thrid Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("5","One than another");
1 row created.
SQL> insert into TestTable (ID, Description) values("6","2003 Movie");
1 row created.
SQL> insert into TestTable (ID, Description) values("7","AAAAAAAAAAAAAAAAAA");
1 row created.
SQL>
SQL> select * from TestTable;
ID   DESCRIPTION
---- ------------------------------
1    1234 5th Street
2    1 Culloden Street
3    1234 Road
4    33 Thrid Road
5    One than another
6    2003 Movie
7    AAAAAAAAAAAAAAAAAA
7 rows selected.
SQL>
SQL>
SQL>
SQL> --[:lower:] matches lowercase characters.
SQL> SELECT description
  2  FROM testTable
  3  WHERE NOT REGEXP_LIKE(description,"[:lower]");
DESCRIPTION
------------------------------
AAAAAAAAAAAAAAAAAA
SQL>
SQL> drop table TestTable;
Table dropped.
SQL>
SQL>
SQL>



REGEXP_INSTR(description,"[:lower:]") > 0

SQL> create table TestTable(
  2    ID                    VARCHAR2(4 BYTE)         NOT NULL,
  3    Description           VARCHAR2(30 BYTE)
  4  )
  5  /
Table created.
SQL>
SQL>
SQL> insert into TestTable (ID, Description) values("1","1234 5th Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("2","1 Culloden Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("3","1234 Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("4","33 Thrid Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("5","One than another");
1 row created.
SQL> insert into TestTable (ID, Description) values("6","2003 Movie");
1 row created.
SQL> insert into TestTable (ID, Description) values("7","Start With Letters");
1 row created.
SQL>
SQL> select * from TestTable;
ID   DESCRIPTION
---- ------------------------------
1    1234 5th Street
2    1 Culloden Street
3    1234 Road
4    33 Thrid Road
5    One than another
6    2003 Movie
7    Start With Letters
7 rows selected.
SQL>
SQL>
SQL> SELECT description, REGEXP_INSTR(description,"[:lower:]")
  2  FROM testTable
  3  WHERE REGEXP_INSTR(description,"[:lower:]") > 0;
DESCRIPTION                    REGEXP_INSTR(DESCRIPTION,"[:LOWER:]")
------------------------------ -------------------------------------
1234 5th Street                                                   12
1 Culloden Street                                                  5
1234 Road                                                          7
33 Thrid Road                                                      6
One than another                                                   3
2003 Movie                                                         7
Start With Letters                                                 4
7 rows selected.
SQL>
SQL>
SQL> drop table TestTable;
Table dropped.
SQL>
SQL>



[:upper:] matches uppercase characters

SQL> create table TestTable(
  2    ID                    VARCHAR2(4 BYTE)         NOT NULL,
  3    Description           VARCHAR2(30 BYTE)
  4  )
  5  /
Table created.
SQL>
SQL>
SQL> insert into TestTable (ID, Description) values("1","1234 5th Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("2","1 Culloden Street");
1 row created.
SQL> insert into TestTable (ID, Description) values("3","1234 Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("4","33 Thrid Road");
1 row created.
SQL> insert into TestTable (ID, Description) values("5","One than another");
1 row created.
SQL> insert into TestTable (ID, Description) values("6","2003 Movie");
1 row created.
SQL> insert into TestTable (ID, Description) values("7","AAAAAAAAAAAAAAA");
1 row created.
SQL>
SQL> select * from TestTable;
ID   DESCRIPTION
---- ------------------------------
1    1234 5th Street
2    1 Culloden Street
3    1234 Road
4    33 Thrid Road
5    One than another
6    2003 Movie
7    AAAAAAAAAAAAAAA
7 rows selected.
SQL>
SQL>
SQL>
SQL> --      [:upper:] matches uppercase characters.
SQL> SELECT description
  2  FROM testTable
  3  WHERE NOT REGEXP_LIKE(description,"[:upper]");
DESCRIPTION
------------------------------
1234 Road
AAAAAAAAAAAAAAA
SQL>
SQL> drop table TestTable;
Table dropped.
SQL>
SQL>