2012-11-23 3 views
1

내 데이터베이스에 OData 인터페이스를 제공 할 것을 고려하고 있습니다. 문자열 필드에 정규 표현식을 허용해야합니다 (예 : OData $filter 조건).

OData는 substringof(), startswith() 및 기타 기능을 제공하지만 정규식에 대해서는 문서에서 찾을 수 없습니다. 이것이 가능합니까?

match()
/Customers?$filter=match(CompanyName, '^Al[a-z]+s Futterkiste') eq true 

난 그냥 만들어 기능입니다 : 같은

이러한 정규식 기능은 아마 보일 것이다.

답변

0

프로토콜에 필터링을위한 기본 제공 정규식 연산자가 없습니다. 당신은 다음과 같은 (유사하거나 뭔가를) 찾고있는 것을 달성 할 수있다 그러나 : 회사 이름 및 정규식 :이 경우

GET http://server/Customers?$filter=match(CompanyName=$it/CompanyName, Regex='^Al[a-z]+s Futterkiste') eq true 

, 당신은 기능이 paramentes 소요 '일치'를 가지고있다. 이 함수는 회사 이름과 일치하는지 여부에 따라 true/false를 반환합니다. 그런 다음 각 회사에 대해 일치 함수가 호출됩니다.

물론 구현은 사용중인 서버 측 기술에 따라 다릅니다.

여기에서 자세한 내용을보실 수 있습니다 : http://www.odata.org/media/30002/OData.html#inlineparametersyntax

행운을 빕니다.

+0

답장을 보내 주셔서 감사합니다. 효율성을 위해, 외부에서 정의 된 함수를 사용하는 것은 불가능합니다 (수백만 행을 가짐). – eseib

+0

시간이 얼마나 걸립니까? – lontivero