데이터 베이스 MySQL 튜토리얼 쉼표로 구분된 값을 Oracle 테이블 열로 안정적으로 분할하는 방법은 무엇입니까?

쉼표로 구분된 값을 Oracle 테이블 열로 안정적으로 분할하는 방법은 무엇입니까?

Jan 22, 2025 am 09:22 AM

How to Reliably Split Comma-Delimited Values into Oracle Table Columns?

Oracle 테이블에서 쉼표로 구분된 값을 효율적으로 구문 분석

쉼표로 구분된 값(CSV)이 포함된 대규모 데이터 세트를 처리하려면 효율적인 데이터 분석 및 조작을 위해 이러한 값을 Oracle 테이블 내의 개별 열로 분할해야 하는 경우가 많습니다. 정규 표현식은 REGEXP_SUBSTR 함수를 통해 솔루션을 제공하지만 [^,] 표현식을 사용하는 일반적인 접근 방식은 신뢰할 수 없습니다.

이는 null 또는 빈 값이 포함된 CSV 데이터를 처리할 때 특히 그렇습니다. Null 또는 빈 문자열에 관계없이 요소를 정확하게 추출하려면 보다 강력한 정규식이 필요합니다. 다음 표현을 추천합니다:

1

(.*?)(,|$)

로그인 후 복사

이 표현식은 캡처 그룹을 활용하여 선행 또는 후행 쉼표를 포함하여 원하는 요소를 정확하게 식별합니다. REGEXP_SUBSTR 내에 캡처 그룹 인덱스(1)를 지정하면 요소의 값을 안정적으로 검색하여 채워진 값과 null 값을 모두 올바르게 처리할 수 있습니다.

다음 예시 쿼리를 고려해보세요.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

SELECT

  ROW_NUM,

  REGEXP_SUBSTR(VAL, '(.*?)(,|$)', 1, 1, NULL, 1) AS VAL1,

  REGEXP_SUBSTR(VAL, '(.*?)(,|$)', 1, 2, NULL, 1) AS VAL2

FROM (

  SELECT

    ROWNUM AS ROW_NUM,

    '1.25, 3.87, 2' AS VAL

  FROM dual

  UNION ALL

  SELECT

    ROWNUM,

    '5, 4, 3.3'

  FROM dual

)

로그인 후 복사

이 쿼리는 "VAL" 열의 쉼표로 구분된 값을 두 개의 새로운 열인 "VAL1"과 "VAL2"로 분할하는 동시에 null 또는 빈 항목이 있어도 데이터 무결성을 유지하는 방법을 보여줍니다. 출력에는 분리된 값이 명확하게 표시됩니다. 샘플 데이터를 생성하기 위해 ROWNUMUNION ALL를 사용한다는 점에 유의하세요. 이는 원래 예제보다 더 표준적인 접근 방식입니다.

위 내용은 쉼표로 구분된 값을 Oracle 테이블 열로 안정적으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker에서 MySQL 메모리 사용을 줄입니다 Docker에서 MySQL 메모리 사용을 줄입니다 Mar 04, 2025 pm 03:52 PM

Docker에서 MySQL 메모리 사용을 줄입니다

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. Mar 04, 2025 pm 04:01 PM

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

sqlite 란 무엇입니까? 포괄적 인 개요 sqlite 란 무엇입니까? 포괄적 인 개요 Mar 04, 2025 pm 03:55 PM

sqlite 란 무엇입니까? 포괄적 인 개요

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Mar 04, 2025 pm 03:54 PM

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 Mar 04, 2025 pm 03:49 PM

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? 일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? Mar 18, 2025 pm 12:00 PM

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?

See all articles