�{�A�ڂ�SQL�̉��p�͂�g�ɕt�������G���W�j�A�����ɁA���܂��܂ȃe�N�j�b�N���Љ��BSQL�̊�{�\���͕��ՂȂ��̂����A�����Ŋ��p����ɂ͋��ȏ��I�ȋL�q�𗝉����邾���ł͕s�\�����B�{�A�ڂ́A�����ȃ��[���}�K�W���u����I�I���I Oracle - �ǂ��Ղ茟�ؐ����v�s����C���T�C�g�e�N�m���W�[�̃R���T���^���g�����M�w�Ɍ}���ASQL�̃Z���X����ɖ𗧂�Z���Z���Љ�Ă����B�i�ҏW�ǁj
�@Oracle Database 10g �ŐV�K�ɒlj����ꂽ���K�\���@�\�́A�e�L�X�g�`���f�[�^���������߂̋��͂ȃc�[���ł��B����ɂ��SQL���g�p���������f�[�^���������A���삷��\�͂��啝�Ɍ��サ�܂��B
�@UNIX���[�U�[�ɂ͑�ςȂ��݂̐[�����K�\���BOracle 10g�Łi����ƁI�H�j��������܂����B���܂܂ł�WHERE��̒��ŁgLIKE�h�ƂƂ��Ɏg�p����u%�v��u_�v�Ȃǂł����\���ł��Ȃ����������܂��ȕ�������A���K�\�����g�p���邱�Ƃŕ������₻�̎�ނ܂Ŏw��ł���悤�ɂȂ��ϕ֗��ɂȂ�܂����B
�@����́AOracle 10g�ŃT�|�[�g����鐳�K�\���iREGEXP_LIKE�AREGEXP_INSTR�AREGEXP_SUBSTR�AREGEXP_REPLACE���j���Љ�܂��B
Samples
����g�p����T���v���e�[�u���̏ڍׂ́A�ȉ��̃����N����m�F���Ă��������B
��sqlclinic01.txt
�@Oracle9i�܂ł̊��ɁuREGEXP_�v���t�����ꐳ�K�\���p�̊��ɂȂ�܂����i�\1�Q�Ɓj�B���Ԃɑ�����@���m�F���Ă����܂��B
������ | �\�� | ���� |
---|---|---|
REGEXP_LIKE | REGEXP_LIKE( ��, ���� ) |
�����i���K�\���j���g���Ă����܂��ȏ������������{���܂��B�����Ώۗ�ł́A�����f�[�^�^���T�|�[�g���܂��iCHAR�AVARCHAR2�ACLOB�ANCHAR�ANVARCHAR2�����NCLOB�̓T�|�[�g���܂����ALONG�̓T�|�[�g���܂���j |
REGEXP_INSTR | REGEXP_INSTR( ������܂��͗�, ���� (,�J�n�ʒu) ) |
�w�肵�������i���K�\���j�Ɉ�v���镔���̍ŏ��̈ʒu�i�������ڂ��j��Ԃ��܂��B�C�ӂɁA�������J�n����J�n�ʒu���w�肷�邱�Ƃ��\�ł� |
REGEXP_SUBSTR | REGEXP_SUBSTR( ������܂��͗�, ���� ) |
�w�肵�����K�\���Ɉ�v���镔����������o�����ʂƂ��ĕԂ��܂� |
REGEXP_REPLACE | REGEXP_REPLACE( �܂��͕�����, ����, �u������������ ) |
�w�肵�����K�\���Ɉ�v���镔�����A�w�肵���ʂ̕�����ɒu�����܂��B���G�Ȓu���^����������\�ɂ��܂� |
�\1�@���K�\�����g�p����� |
�@�܂��́AREGEXP_LIKE��������s���Ă݂܂��傤�B���K�\�����g���Ă����܂��ȏ������������{����Ƃ��ɗ��p���܂��B
�\���@REGEXP_LIKE(��,����)
SQL> SELECT * FROM TEST_REGEXP; COL1 ---------- ABCDE01234 01234ABCDE abcde01234 01234abcde SQL> SELECT * FROM TEST_REGEXP WHERE REGEXP_LIKE(COL1,'[0-9][A-Z]'); COL1 ---------- 01234ABCDE SQL> SELECT * FROM TEST_REGEXP WHERE REGEXP_LIKE(COL1,'[0-9][a-z]'); COL1 ---------- 01234abcde
�@�����Â�ƈȉ��̂悤�ȃ`�F�b�N�������\�ł��B
SQL> ALTER TABLE QA_MASTER ADD CONSTRAINT QA_NO_CHK CHECK 2 (REGEXP_LIKE(QA_NO, 3 '^([[:alpha:]]{2}-[[:digit:]]{2}-[[:digit:]]{4})$')); Table altered. SQL> INSERT INTO QA_MASTER VALUES('QA-01-0001'); 1 row created. SQL> INSERT INTO QA_MASTER VALUES('00-01-0001'); INSERT INTO QA_MASTER VALUES('00-01-0001') * ERROR at line 1: ORA-02290: check constraint (ORAORA.QA_NO_CHK) violated
�@���̂悤�ɋ��e���ꂽ�f�[�^�����o�^�ł��Ȃ��悤�ȃ`�F�b�N�������ł��܂��B�i���y�[�W�֑����j
Copyright © ITmedia, Inc. All Rights Reserved.