길이가 10 문자 40 자이고 길이가 HOS_NAME
및 HOS_NAME1
인 두 개의 필드가 있습니다. 이전 요구 사항에서이 두 필드 모두에 HOSPITAL_NAME
을 넣어야했습니다. 나는 첫 번째 필드 (HOS_NAME
)에 처음 10 개 문자를 넣고오라클 하위 문자열 (substrb) 공간에서 분할
substrb(HOSPITAL_NAME, 0, 10) AS HOS_NAME, substrb(HOSPITAL, 11) AS HOS_NAME1
그러나, 나는 새로운 요구 사항을 충족해야 사용하여 다음 필드 (HOS_NAME1
)에 남아 : 공간이 첫 번째 (10) 내에서 발견 된 경우 문자 다음에 공백 다음의 나머지 문자는 다음 필드로 이동해야합니다. 그래서, 어떻게 이것을 할 수 있습니까?
예 : HOSPITAL_NAME
는 기존의 디자인에서 'GRACE MEMORIAL HOSPITAL'
- 입니다
HOS_NAME
는'GRACE MEMO'
및HOS_NAME1
이'RIAL HOSPITAL'
입니다. - 새로운 디자인으로
HOS_NAME
은'GRACE '
이어야하고HOS_NAME1
은'MEMORIAL HOSPITAL'
이어야합니다.
어떻게하면됩니까?
그냥 명확하게, 모두'HOS_NAME'와'HOS_NAME1' 현재 컬럼에 저장됩니다 'HOSPITAL_NAME'? 첫 번째 공간이 처음 10 자 이내가 아니라면'HOS_NAME'은 처음 10 자이고 나머지는'HOS_NAME1'입니까? –
그건 그렇고,'SUBSTRB()'는 * 문자 *가 아닌 * bytes *를 반환하기 때문에 혼란스러운 결과를 반환 할 수 있습니다. 후자는'SUBSTR()'을 원한다. –