Chuyển đến nội dung

Chuyển Excel sang Oracle

Thả tệp Excel để nhận tập lệnh Oracle với câu lệnh CREATE TABLE và INSERT. Mỗi cột được gán kiểu, và mọi bản sửa đều được liệt kê kèm hàng và cột.

Tệp của bạn
xlsxclientes_2024.xlsxTệp mẫu, 7 kB
Cơ sở dữ liệu của bạn

Đã chuyển đổi 4 hàng, 10 bản sửa, không hàng nào bị từ chối

Hiển thị
Những hàng đầu tiên của clientes_2024.xlsx, mỗi bản sửa đều được đánh dấu
Hàng
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for Oracle.

SET DEFINE OFF

CREATE TABLE clientes_2024 (
    no_cliente VARCHAR2(8 CHAR) NOT NULL,
    nombre VARCHAR2(16 CHAR) NOT NULL,
    c_p VARCHAR2(8 CHAR) NOT NULL,
    alta DATE NOT NULL,
    activo NUMBER(1) NOT NULL,
    saldo NUMBER(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';

INSERT ALL
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00127', 'Peña Muñoz', '01234', DATE '2024-02-03', 1, 1234.50)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00128', 'José Ángel', '09870', DATE '2024-02-15', 0, NULL)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00129', 'Zoë Ortíz', '44100', DATE '2024-02-29', 1, -12.00)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00130', 'Ñuño Castañeda', '06700', DATE '2024-03-11', 0, 980.75)
SELECT 1 FROM DUAL;

COMMIT;

Bản sửa

  1. Tiêu đề nằm ở dòng 4; các dòng phía trên đã bị bỏ qua.
  2. Dòng 9 ("TOTAL") là dòng tổng, nên đã bị bỏ qua.
  3. Cột "Nº Cliente" giờ có tên no_cliente để Oracle đọc được mà không cần dấu ngoặc kép.
  4. Cột "C.P." giờ có tên c_p để Oracle đọc được mà không cần dấu ngoặc kép.
  5. Giữ số 0 ở đầu trong "Nº Cliente": 00127 vẫn là 00127, lưu dưới dạng văn bản.
  6. Giữ số 0 ở đầu trong "C.P.": 01234 vẫn là 01234, lưu dưới dạng văn bản.
  7. 15/02/2024 chứng minh ngày trong "Alta" ghi ngày trước tháng, nên 03/02/2024 được đọc là 2024‑02‑03.
  8. "Activo" chứa các từ có và không (sí, no), lưu dưới dạng boolean.
  9. Số trong "Saldo" dùng dấu phẩy thập phân: 1.234,50 được đọc là 1234.50.
  10. N/A trong "Saldo" được đọc là trống (1 trên 4 giá trị).

Tệp được chuyển đổi ngay trên máy tính này và không bao giờ được tải lên.

Mẫu khác:

Từ Excel sang Oracle, từng cột một

Tệp mẫu ở trên, clientes_2024.xlsx, khi IntoSQL viết cho Oracle: mỗi cột chứa gì trong tệp, kiểu dữ liệu nhận được và giá trị đầu tiên xuất hiện thế nào trong tập lệnh.

Trong tệpGiá trị đầu tiênCộtKiểu OracleTrong tập lệnh
Nº Cliente00127no_clienteVARCHAR2(8 CHAR)'00127'
NombrePeña MuñoznombreVARCHAR2(16 CHAR)'Peña Muñoz'
C.P.01234c_pVARCHAR2(8 CHAR)'01234'
Alta03/02/2024altaDATEDATE '2024-02-03'
ActivosíactivoNUMBER(1)1
Saldo1.234,50saldoNUMBER(6,2)1234.50

Nạp tập lệnh vào Oracle

Tệp tải xuống là một tệp .sql thông thường. Chạy nó bằng công cụ riêng của Oracle.

Từ terminal

sqlplus user@//localhost/mydb @clientes_2024.oracle.sql

Tập lệnh tắt biến thay thế (SET DEFINE OFF), nên dấu & trong dữ liệu vẫn là dấu &.

Từ công cụ cơ sở dữ liệu

Trong SQL Developer, mở tập lệnh và chọn Run Script (F5).

Những điều cần biết về tệp Excel và Oracle

IntoSQL đọc gì trong tệp Excel

  • Dòng tiêu đề vẫn được tìm thấy dù phía trên có tiêu đề hoặc ghi chú, và dòng tổng ở cuối được bỏ qua.
  • Ngày lưu dưới dạng số sê-ri của Excel trở thành ngày thật, ở cả hệ ngày 1900 lẫn 1904.
  • Mã có số 0 ở đầu, như 00127, vẫn là văn bản. Khi sổ làm việc có nhiều trang tính, bạn chọn trang tính.

Những điều cần biết về Oracle

  • Giá trị có và không trở thành NUMBER(1), chứa 1 hoặc 0, mà mọi phiên bản Oracle đều chấp nhận.
  • Văn bản là VARCHAR2 với độ dài tính theo ký tự; trên 4000 byte sẽ thành CLOB. Oracle lưu văn bản rỗng là NULL.
  • Các hàng được chèn bằng INSERT ALL, và giá trị dài được chia nhỏ để SQL*Plus chấp nhận.

Cách mỗi loại giá trị được lưu trong Oracle

Giá trịOracle
Có và khôngNUMBER(1)
Số nguyênNUMBER(10)
Số nguyên lớnNUMBER(19)
Số thập phânNUMBER(p,s)
Số dấu phẩy độngBINARY_DOUBLE
NgàyDATE
Giờ trong ngàyINTERVAL DAY(0) TO SECOND
Ngày kèm giờTIMESTAMP
Ngày kèm giờ và độ lệch múi giờTIMESTAMP WITH TIME ZONE
Văn bảnVARCHAR2(n CHAR)CLOB

Câu hỏi về Excel sang Oracle

Chưa có câu trả lời ở đây? Hãy viết cho chúng tôi từ trang liên hệ, sẽ có người trả lời. Trang liên hệ

Làm sao để chuyển Excel sang Oracle?

Thả tệp vào trình chuyển đổi ở đầu trang này. Nó tìm tiêu đề, đọc mọi giá trị và viết tập lệnh Oracle, kèm danh sách từng bản sửa. Tải tập lệnh xuống và chạy bằng SQL*Plus.

Trang tính nào trong sổ làm việc được chuyển đổi?

Trang tính hiển thị đầu tiên. Khi sổ làm việc có nhiều trang tính, tùy chọn Trang tính sẽ xuất hiện để bạn chọn trang khác.

Nó dùng những kiểu Oracle nào?

Giá trị có/không thành NUMBER(1), số nguyên thành NUMBER(10), số thập phân thành NUMBER(p,s), ngày thành DATE, ngày kèm giờ thành TIMESTAMP và văn bản thành VARCHAR2(n CHAR). Kích thước lấy theo giá trị dài nhất trong mỗi cột.

Số 0 ở đầu có được giữ trong Oracle không?

Có. Một mã như 00127 vẫn là văn bản, nên Oracle lưu nó dưới dạng VARCHAR2(8 CHAR) và tập lệnh viết nó là '00127'.

Có thể nạp dữ liệu vào Oracle mà không cần tập lệnh không?

Không. Hãy tải tập lệnh xuống và chạy bằng SQL*Plus. Nạp không cần tập lệnh hoạt động với PostgreSQL, MySQL, MariaDB và SQLite, từ ứng dụng máy tính hoặc dòng lệnh.

Tệp Excel có thể lớn đến đâu?

Trong trình duyệt, sổ làm việc được đọc toàn bộ, nên giới hạn là bộ nhớ trình duyệt cấp cho trang này. Ứng dụng máy tính và dòng lệnh nhận sổ làm việc ở mọi kích thước; trên laptop Apple M4, dòng lệnh chuyển đổi sổ làm việc 117 MB với một triệu hàng trong khoảng một giây.