programing

기판을 사용하여 Oracle에서 문자열 자르기

powerit 2023. 9. 15. 21:24
반응형

기판을 사용하여 Oracle에서 문자열 자르기

끈을 지정된 길이로 다듬고 싶습니다.끈이 짧으면 아무것도 하고 싶지 않아요.그 일을 할 수 있는 기능 기판을 찾았습니다.그러나 Oracle 설명서에는 문자열이 최대 길이보다 짧을 경우 발생하는 동작이 없습니다.

예를 들어 다음과 같습니다.

select substr('abc',1,5) from dual;

필요한 'abc'를 반환합니다.

이 사용법에 대해 함수가 정의되어 있지 않은 것 같아서 안전한지 문의드립니다.자르는 더 좋은 방법이 있습니까?

완전히 괜찮지만 원한다면 다음 쿼리를 사용할 수 있습니다.

select substr('abc',1,least(5,length('abc'))) from dual;

이것은 흥미로운 질문입니다.놀랍게도, 그 문서는 이 점을 명시적으로 다루지 않는 것 같습니다.

저는 당신이 하고 있는 일이 꽤 안전하다고 생각합니다.substr()문자열이 너무 짧을 때 문자열 끝에 문자를 "추가"하지 않습니다.시간이 지남에 따라 Oracle을 포함한 많은 데이터베이스에서 이러한 동작을 수행해 왔습니다.이것은 다른 데이터베이스와 대부분의 언어에서 유사한 기능이 작동하는 방식입니다.

한 가지 예외는 원래 데이터 유형이 다음과 같은 경우입니다.char()보다는varchar2()type. 이 경우 함수는 같은 타입의 문자열을 반환하므로 공백으로 덧씌워질 수 있습니다.그러나 이는 실제 함수가 아닌 유형의 속성입니다.

Substrate를 단독으로 사용하여 후행 공백이 발생하지 않도록 확실히 하고 싶다면 다음을 사용할 수 있습니다.

SELECT RTRIM(SUBSTR('abc',1,5)) FROM DUAL;

나누어서 즐겨요.

아래 쿼리를 사용하는 것이 좋습니다.

SELECT SUBSTR('abc',1,LEAST(5,LENGTH('abc'))) FROM DUAL;

위의 쿼리는 문자열의 길이 또는 숫자 5 중 더 낮은 값을 사용합니다.

언급URL : https://stackoverflow.com/questions/24261915/using-substr-to-trim-string-on-oracle

반응형