>  기사  >  데이터 베이스  >  Oracle은 데이터가 숫자 유형인지 여부를 어떻게 결정합니까?

Oracle은 데이터가 숫자 유형인지 여부를 어떻게 결정합니까?

WBOY
WBOY원래의
2022-04-07 11:27:5822521검색

방법: 1. "trim(translate(column,'0123456789',' ')) is NULL;"을 사용하여 데이터가 숫자인지 확인합니다. 2. "regexp_like(column,'^[0-9]"를 사용합니다. +[0 -9]$');" 데이터가 숫자인지 확인합니다.

Oracle은 데이터가 숫자 유형인지 여부를 어떻게 결정합니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle은 데이터가 숫자 유형인지 어떻게 확인합니까?

select*from table name wherere 일상적인 개발에서 우리는 특정 열이 완전히 숫자로 구성되어 있는지 확인하는 문제에 직면할 수 있습니다. Oracle이 이러한 미리 만들어진 기능을 제공하지 않는다는 것을 알고 내 경험을 바탕으로 두 가지 효과적인 방법(열 이름: 열, 테이블 이름: 테이블)을 요약했습니다.

1 트림+번역 기능 사용:

코드는 다음과 같습니다.

select * from table where trim(translate(column,'0123456789',' ')) is NULL;

여기서 주목해야 할 점은 번역 함수의 세 번째 매개변수가 ''가 아닌 공백이라는 점입니다. 번역의 세 번째 매개변수가 비어 있으면 항상 ''를 반환하기 때문입니다. , 따라서 순전히 수치 목적으로 필터링을 수행할 수 없습니다.

이런 식으로 모든 숫자는 공백으로 변환됩니다. 모두 숫자로 구성된 경우 일단 다듬어지면 자연스럽게 비어 있게 되어 위의 목표를 달성하게 됩니다. 물론 빈 항목을 제외하려면 다음과 같이 쓰면 됩니다.

코드는 다음과 같습니다.

select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。

2 regexp_like 함수를 사용합니다.

코드는 다음과 같습니다.

select * from table where regexp_like(column,'^[0-9]+[0-9]$');

해야 합니다. 여기서 regexp_like 함수는 모든 Oracle 버전에서 사용할 수는 없지만 모두 사용할 수 있다는 점에 유의하세요.

regexp_like는 Oracle이 정규식을 지원하는 네 가지 함수인 regexp_like, regexp_replace, regexp_instr, regexp_substr 중 하나입니다. 이와 관련된 자세한 내용은 관련 문서를 참고하시기 바랍니다.

추천 튜토리얼: "Oracle Video Tutorial"

위 내용은 Oracle은 데이터가 숫자 유형인지 여부를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.