JSON에서 Oracle로 변환
JSON 파일을 놓으면 CREATE TABLE과 INSERT 문이 담긴 Oracle 스크립트가 만들어져요. 열마다 타입을 정하고, 모든 수정 사항을 행과 열과 함께 나열해요.
4개 행 변환, 수정 2개, 거부 없음
| 행 | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for Oracle.
SET DEFINE OFF
CREATE TABLE pedidos_2024 (
pedido VARCHAR2(8 CHAR) NOT NULL,
cliente VARCHAR2(16 CHAR) NOT NULL,
fecha TIMESTAMP WITH TIME ZONE NOT NULL,
total NUMBER(6,2) NOT NULL,
pagado NUMBER(1) NOT NULL,
notas VARCHAR2(32 CHAR)
);
INSERT ALL
INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000481', 'Peña Muñoz', TIMESTAMP '2024-02-03 10:15:00 +00:00', 1234.5, 1, NULL)
INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000482', 'José Ángel Ruiz', TIMESTAMP '2024-02-15 16:40:00 +00:00', 99.9, 0, 'Entrega en la tarde')
INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000483', 'Zoë Ortíz', TIMESTAMP '2024-02-29 09:05:00 +00:00', 12, 1, NULL)
INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000484', 'Ñuño Castañeda', TIMESTAMP '2024-03-11 13:30:00 +00:00', 980.75, 1, 'Factura con "RFC"')
SELECT 1 FROM DUAL;
COMMIT;
수정 사항
- "pedido" 열의 앞자리 0을 유지했어요. 000481 값은 000481 그대로 텍스트로 저장돼요.
- "pagado" 열에 예/아니요 단어(sí)가 있어 불리언으로 저장했어요.
파일은 이 컴퓨터에서 변환되고 업로드되지 않아요.
다른 샘플:
JSON에서 Oracle까지, 열 하나씩
IntoSQL이 위 샘플 파일 pedidos_2024.json을(를) Oracle용으로 쓴 결과예요. 각 열이 파일에 담은 내용, 받는 형식, 첫 값이 스크립트에 들어가는 모습을 보여 줘요.
| 파일에서 | 첫 값 | 열 | Oracle 형식 | 스크립트에서 |
|---|---|---|---|---|
| pedido | 000481 | pedido | VARCHAR2(8 CHAR) | '000481' |
| cliente | Peña Muñoz | cliente | VARCHAR2(16 CHAR) | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | TIMESTAMP WITH TIME ZONE | TIMESTAMP '2024-02-03 10:15:00 +00:00' |
| total | 1234.5 | total | NUMBER(6,2) | 1234.5 |
| pagado | true | pagado | NUMBER(1) | 1 |
| notas | - | notas | VARCHAR2(32 CHAR) | NULL |
스크립트를 Oracle에 불러오기
다운로드한 파일은 일반 .sql 파일이에요. Oracle 자체 도구로 실행하세요.
터미널에서
sqlplus user@//localhost/mydb @pedidos_2024.oracle.sql스크립트가 치환 변수를 꺼서(SET DEFINE OFF) 데이터 속 앰퍼샌드가 그대로 남아요.
데이터베이스 도구에서
SQL Developer에서 스크립트를 열고 Run Script(F5)를 고르세요.
JSON 파일과 Oracle에 대해 알아 둘 점
IntoSQL이 JSON 파일에서 읽는 내용
- 파일은 객체 배열, data 같은 키 아래에 그 배열을 담은 객체, 또는 한 줄에 객체 하나(NDJSON) 형식일 수 있어요.
- 각 키는 열이 돼요. 값 안의 객체와 배열은 JSON 텍스트로 유지돼요.
- 숫자는 자릿수를 정확히 유지하고, ISO 8601 날짜는 날짜나 타임스탬프가 돼요.
Oracle에 대해 알아 둘 점
- 예/아니요 값은 1 또는 0을 담는 NUMBER(1)이 되며, 모든 Oracle 버전에서 쓸 수 있어요.
- 텍스트는 길이를 문자 수로 지정한 VARCHAR2이고, 4000바이트가 넘으면 CLOB이 돼요. Oracle은 빈 텍스트를 NULL로 저장해요.
- 행은 INSERT ALL로 삽입되고, 긴 값은 SQL*Plus가 받아들이도록 나뉘어요.
Oracle에서 값의 종류별 저장 방식
| 값 | Oracle |
|---|---|
| 예/아니요 | NUMBER(1) |
| 정수 | NUMBER(10) |
| 큰 정수 | NUMBER(19) |
| 소수 | NUMBER(p,s) |
| 부동소수점 | BINARY_DOUBLE |
| 날짜 | DATE |
| 시각 | INTERVAL DAY(0) TO SECOND |
| 날짜와 시간 | TIMESTAMP |
| 날짜, 시간과 시차 | TIMESTAMP WITH TIME ZONE |
| 텍스트 | VARCHAR2(n CHAR)CLOB |
JSON에서 Oracle(으)로 변환하기에 관한 질문
여기에 답이 없나요? 문의 페이지로 연락하시면 담당자가 답장해요. 문의 페이지
JSON 파일을 Oracle용으로 어떻게 변환하나요?
이 페이지 위쪽의 변환기에 파일을 놓으세요. 헤더를 찾고 모든 값을 읽은 뒤, 적용한 수정 사항을 나열하며 Oracle 스크립트를 써요. 스크립트를 다운로드해 SQL*Plus에서 실행하세요.
JSON 파일은 어떤 형태여야 하나요?
객체 배열, data 같은 키 아래에 그 배열을 담은 객체, 또는 한 줄에 객체 하나(NDJSON)예요. 각 키가 열이 돼요.
Oracle에서는 어떤 형식을 쓰나요?
예/아니요 값은 NUMBER(1), 정수는 NUMBER(10), 소수는 NUMBER(p,s), 날짜는 DATE, 시각이 있는 날짜는 TIMESTAMP, 텍스트는 VARCHAR2(n CHAR) 형식이 돼요. 크기는 각 열에서 가장 긴 값에 맞춰져요.
Oracle에서 앞자리 0이 유지되나요?
네. 000481 같은 코드는 텍스트로 유지되므로 Oracle에 VARCHAR2(8 CHAR) 형식으로 저장되고 스크립트에는 '000481'(으)로 쓰여요.
스크립트 없이 Oracle에 데이터를 불러올 수 있나요?
아니요. 스크립트를 다운로드해 SQL*Plus에서 실행하세요. 스크립트 없이 불러오기는 데스크톱 앱이나 명령줄에서 PostgreSQL, MySQL, MariaDB, SQLite에 쓸 수 있어요.
JSON 파일은 얼마나 커도 되나요?
한 줄에 객체 하나인 NDJSON은 들어오는 대로 읽어서 브라우저에서도 수 GB 파일을 처리해요. JSON 문서는 통째로 읽으므로 한도는 브라우저가 이 페이지에 주는 메모리예요. 데스크톱 앱과 명령줄은 크기에 상관없이 파일을 처리해요.