Có thể bạn quan tâm: Cách Nối (concat) Nhiều Ô Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở Đầu
Trong môi trường doanh nghiệp hiện đại, việc khai thác và phân tích dữ liệu nhanh chóng, chính xác là yếu tố then chốt giúp quyết định chiến lược và nâng cao hiệu suất làm việc. Microsoft Excel, với giao diện thân thiện và khả năng xử lý dữ liệu mạnh mẽ, luôn là công cụ ưa thích của nhiều nhà phân tích, quản lý và nhân viên kinh doanh. Tuy nhiên, khi dữ liệu được lưu trữ trong các hệ quản trị cơ sở dữ liệu (CSDL) lớn và phức tạp như Oracle, việc đưa dữ liệu này vào Excel để phân tích đòi hỏi phải thiết lập một kết nối đáng tin cậy và an toàn.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ và thực tiễn về cách kết nối Excel tới Oracle Database. Chúng ta sẽ đi qua các khái niệm cơ bản, chuẩn bị môi trường, cài đặt driver Oracle, cấu hình kết nối, sử dụng các công cụ tích hợp trong Excel (Power Query, Data Connection Wizard), và cuối cùng là một số mẹo tối ưu hiệu suất, bảo mật và xử lý lỗi thường gặp. Nội dung được chia thành các phần rõ ràng, mỗi phần bao gồm các bước thực hiện cụ thể, hình ảnh minh họa (miêu tả bằng lời) và lời khuyên thực tiễn để bạn có thể áp dụng ngay trong công việc.
Lưu ý: Bài viết này hướng tới người dùng có kiến thức cơ bản về Excel và Oracle, nhưng không yêu cầu bạn phải là chuyên gia DBA. Nếu bạn chưa quen với Oracle, phần “Giới Thiệu Ngắn Gọn Về Oracle” sẽ giúp bạn nắm bắt các khái niệm cần thiết.
Có thể bạn quan tâm: Cách Dùng Concat Để Gộp Dấu Nháy Đôi (double Quotes) Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới Thiệu Ngắn Gọn Về Oracle Database
1.1 Oracle là gì?
Oracle Database là một trong những hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mạnh mẽ và phổ biến nhất trên thế giới. Được phát triển bởi Oracle Corporation, nó hỗ trợ các tính năng như:
- Mô hình dữ liệu quan hệ: bảng, quan hệ, khóa chính/ngoại.
- SQL và PL/SQL: ngôn ngữ truy vấn và lập trình.
- Quản lý giao dịch (ACID): đảm bảo tính toàn vẹn dữ liệu.
- Khả năng mở rộng: hỗ trợ hàng triệu bản ghi, hàng nghìn người dùng đồng thời.
- Bảo mật: mã hoá, kiểm soát truy cập, audit.
1.2 Kiến trúc cơ bản
Oracle thường được triển khai trên một hoặc nhiều server (instance) và database (tập hợp các schema). Mỗi schema chứa các đối tượng như bảng (tables), view, procedure, function, v.v. Khi muốn truy cập dữ liệu, chúng ta cần:
- Tên máy chủ (host) hoặc IP.
- Tên dịch vụ (service name) hoặc SID.
- Tên người dùng (username) và mật khẩu (password).
- Cổng (port) thường là 1521 (trừ khi cấu hình khác).
Có thể bạn quan tâm: Cách Tắt Compatibility Mode Trong Excel: Hướng Dẫn Chi Tiết Và Những Lưu Ý Quan Trọng
2. Lý Do Kết Nối Excel Với Oracle
| Lợi ích | Mô tả |
|---|---|
| Trực quan hoá dữ liệu | Dễ dàng tạo biểu đồ, bảng pivot, dashboard trong Excel. |
| Tự động hoá báo cáo | Sử dụng macro/VBA để tải dữ liệu định kỳ. |
| Phân tích ad-hoc | Người dùng không cần IT can thiệp để thực hiện truy vấn nhanh. |
| Kết hợp dữ liệu đa nguồn | Excel cho phép merge dữ liệu Oracle với CSV, Access, API. |
| Tiết kiệm thời gian | Tránh việc xuất file CSV thủ công, giảm lỗi nhập liệu. |
3. Chuẩn Bị Môi Trường
3.1 Yêu cầu phần mềm
- Microsoft Excel (phiên bản 2026 trở lên, Office 365 được khuyến nghị).
- Oracle Client hoặc Oracle Instant Client (thành phần OCI – Oracle Call Interface).
- Oracle ODBC Driver (nếu muốn dùng ODBC).
- Oracle Provider for OLE DB (đối với OLE DB).
- Power Query (được tích hợp sẵn trong Excel 2026+).
3.2 Kiểm tra phiên bản 64-bit vs 32-bit
Excel và driver Oracle phải cùng kiến trúc (cả 64-bit hoặc cả 32-bit). Để kiểm tra:
- Excel: Mở Excel → File → Account → About Excel → xem “Microsoft Excel 64-bit” hoặc “32-bit”.
- Oracle Driver: Tải driver tương ứng từ trang Oracle (tải “instantclient-basic-windows.x64-XX.X.X.X.zip” cho 64-bit).
3.3 Tải và Cài Đặt Oracle Instant Client
- Truy cập Oracle Instant Client Downloads (https://www.oracle.com/database/technologies/instant-client/downloads.html).
- Chọn phiên bản Instant Client Basic và SQLPlus (tùy chọn) cho Windows 64-bit.
- Giải nén vào thư mục, ví dụ:
C:\oracle\instantclient_19_12. - Thêm thư mục này vào biến môi trường PATH:
- Control Panel → System → Advanced system settings → Environment Variables → System variables → Path → Edit → New →
C:\oracle\instantclient_19_12. - Kiểm tra bằng Command Prompt:
sqlplus -V→ hiển thị phiên bản.
3.4 Cài Đặt ODBC Driver (Nếu cần)
- Tải ODBC driver (Oracle ODBC Driver) từ trang Oracle.
- Chạy file cài đặt
setup.exe. - Mở ODBC Data Source Administrator (64-bit) → System DSN → Add → Chọn Oracle in instantclient_19_12.
- Đặt tên DSN (ví dụ:
ORCL_DSN), nhập TNS Service Name, User ID, Password (có thể để trống và nhập sau).
Ghi chú: Nếu môi trường không có file
tnsnames.ora, bạn có thể tạo một file tạm trong thư mụcC:\oracle\network\admin\tnsnames.oravới nội dung:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service_name) ) )
4. Kết Nối Excel Với Oracle Bằng Power Query (Get & Transform)
Power Query là công cụ mạnh mẽ cho phép kết nối, trích xuất, chuyển đổi dữ liệu mà không cần viết code.
4.1 Bước 1: Mở Power Query
- Mở Excel → Tab Data → Nhóm Get & Transform Data → Click Get Data → From Database → From Oracle Database.
4.2 Bước 2: Nhập Thông Tin Kết Nối
- Server: Nhập địa chỉ máy chủ Oracle, ví dụ:
your_host:1521/your_service. - Cú pháp:
hostname:port/service_namehoặc//hostname:port/service_name. - Database: Để trống (Oracle không yêu cầu nhập database tên riêng).
- Authentication: Chọn Database → Nhập Username và Password.
- Nếu muốn lưu thông tin đăng nhập, tick Remember password.
4.3 Bước 3: Chọn Bảng / View
- Sau khi kết nối thành công, Power Query sẽ hiển thị danh sách các Schemas và Tables.
- Chọn Schema (ví dụ:
HR) → chọn Tables (ví dụ:EMPLOYEES). - Bạn có thể preview dữ liệu ngay trong cửa sổ Power Query.
4.4 Bước 4: Chuyển Đổi Dữ Liệu (Tùy Chọn)
- Sử dụng các thao tác Remove Columns, Filter Rows, Change Data Types, Group By,…
- Khi đã hài lòng, click Close & Load → Dữ liệu sẽ được tải vào một Table trong Excel.
4.5 Cập Nhật Dữ Liệu Định Kỳ
- Để refresh dữ liệu: Data → Refresh All hoặc click chuột phải trên bảng → Refresh.
- Đặt lịch tự động (nếu dùng Office 365) bằng Power Automate hoặc Task Scheduler kết hợp macro VBA.
5. Kết Nối Excel Với Oracle Sử Dụng ODBC
Nếu môi trường yêu cầu ODBC (ví dụ: các hệ thống legacy hoặc khi muốn sử dụng VBA), chúng ta sẽ thực hiện theo các bước sau.
5.1 Tạo DSN (Data Source Name)
- Mở ODBC Data Source Administrator (64-bit).
- Chọn System DSN → Add → Oracle in instantclient_19_12.
- Điền các trường:
- Data Source Name:
ORCL_DSN. - TNS Service Name:
ORCL(định danh trongtnsnames.ora). - User ID: để trống (sẽ nhập khi kết nối).
- Password: để trống.
- Click Test Connection → nhập User ID và Password → nếu thành công, lưu lại.
5.2 Kết Nối Từ Excel

Có thể bạn quan tâm: Conditional Formatting Cells In Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Cách 1: Data → Get Data → From Other Sources → From ODBC
- Chọn DSN vừa tạo (
ORCL_DSN). - Nhập User ID và Password.
- Chọn bảng hoặc viết câu truy vấn SQL tùy ý.
Cách 2: Sử Dụng VBA (Macro)
Sub ImportFromOracleODBC() Dim cn As Object, rs As Object Dim connStr As String Dim sql As String ' Chuỗi kết nối ODBC connStr = "Driver={Oracle in instantclient_19_12};Dbq=ORCL;Uid=your_user;Pwd=your_password;" Set cn = CreateObject("ADODB.Connection") cn.Open connStr sql = "SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <= 100" Set rs = cn.Execute(sql) ' Đổ dữ liệu vào Sheet1, bắt đầu từ ô A2 Sheet1.Range("A2").CopyFromRecordset rs rs.Close cn.Close Set rs = Nothing Set cn = Nothing MsgBox "Hoàn thành import dữ liệu từ Oracle!", vbInformation
End Sub
- Giải thích:
Driver={Oracle in instantclient_19_12}: tên driver phải đúng như trong ODBC.Dbq=ORCL: tên DSN hoặc service.CopyFromRecordsetsẽ tự động tạo header nếu muốn, có thể thêmSheet1.Range("A1").Resize(1, rs.Fields.Count).Value = rs.Fields(i).Name.
5.3 Xử Lý Lỗi Thông Thường
| Mã Lỗi | Nguyên Nhân | Giải Pháp |
|---|---|---|
ORA-12541: TNS:no listener | Listener Oracle không chạy hoặc sai cổng. | Kiểm tra service OracleTNSListener, chạy lsnrctl status. |
ORA-12154: TNS:could not resolve the connect identifier specified | Tên service không tồn tại trong tnsnames.ora. | Kiểm tra file tnsnames.ora, hoặc dùng connection string đầy đủ. |
ODBC-08001 | Driver không tương thích (32/64-bit). | Đảm bảo Excel và driver cùng kiến trúc. |
ORA-01017: invalid username/password | Thông tin đăng nhập sai. | Kiểm tra CAPS LOCK, mật khẩu đặc biệt, hoặc tài khoản bị lock. |
ORA-00942: table or view does not exist | Bảng không tồn tại hoặc người dùng không có quyền. | Kiểm tra schema, cấp SELECT privilege. |
6. Sử Dụng OLE DB Provider (Oracle Provider for OLE DB)
OLE DB là một công nghệ trung gian, hữu ích khi muốn tích hợp sâu hơn với Excel, đặc biệt trong môi trường VBA.
6.1 Cài Đặt Oracle Provider for OLE DB
- Tải Oracle Provider for OLE DB (đi kèm trong Oracle Data Access Components – ODAC) từ trang Oracle.
- Chọn phiên bản 64-bit phù hợp.
- Chạy file
install.exevà chọn OLE DB Provider.
6.2 Kết Nối Từ Excel
Cách 1: Data → Get Data → From Other Sources → From OLE DB
- Chọn Provider:
Oracle Provider for OLE DB. - Data Source:
your_host:1521/your_service. - User ID và Password.
- Click Connect, chọn bảng hoặc viết query.
Cách 2: VBA
Sub ImportFromOracleOLEDB() Dim cn As Object, rs As Object Dim connStr As String Dim sql As String connStr = "Provider=OraOLEDB.Oracle;" & _ "Data Source=//your_host:1521/your_service;" & _ "User Id=your_user;" & _ "Password=your_password;" Set cn = CreateObject("ADODB.Connection") cn.Open connStr sql = "SELECT FROM HR.DEPARTMENTS" Set rs = cn.Execute(sql) Sheet2.Range("A2").CopyFromRecordset rs rs.Close cn.Close Set rs = Nothing Set cn = Nothing MsgBox "Dữ liệu OLE DB đã được tải!", vbInformation
End Sub
7. Tối Ưu Hóa Hiệu Suất Khi Kết Nối
7.1 Giảm Lượng Dữ Liệu Truy Vấn
- Chỉ chọn cột cần thiết:
SELECT col1, col2 FROM table. - Sử dụng điều kiện WHERE để lọc bản ghi.
- Sử dụng LIMIT / ROWNUM để giới hạn số bản ghi (Oracle:
WHERE ROWNUM <= 5000).
7.2 Sử Dụng Caching trong Power Query
- Khi dữ liệu không thay đổi thường xuyên, bật Enable Load to Data Model → Only Create Connection → Enable Background Refresh.
- Sử dụng Incremental Refresh (cần Power BI, nhưng trong Excel có thể dùng VBA để chỉ refresh phần mới).
7.3 Tối Ưu TNS và Listener
- Đảm bảo listener chạy ở cổng mặc định 1521 và không có firewall chặn.
- Đặt SQLNET.EXPIRE_TIME trong
sqlnet.orađể giữ kết nối ổn định.
7.4 Sử Dụng Connection Pooling
- Khi dùng ODBC hoặc OLE DB, bật Connection Pooling trong file
odbc.inihoặc trong chuỗi kết nối (Pooling=True). - Giảm thời gian mở/đóng kết nối cho các thao tác lặp lại.
8. Bảo Mật Khi Kết Nối Excel tới Oracle
| Yếu Tố | Rủi Ro | Giải Pháp |
|---|---|---|
| Lưu mật khẩu trong file | Rò rỉ thông tin đăng nhập. | Không tick “Save password”. Sử dụng Windows Credential Manager hoặc Azure Key Vault để lưu trữ. |
| Kết nối không mã hoá | Dữ liệu bị sniffing trên mạng. | Sử dụng SSL/TLS: cấu hình sqlnet.ora với SSL_VERSION = 1.2, WALLET_LOCATION. |
| Quyền truy cập quá rộng | Người dùng có thể xem/điều chỉnh dữ liệu không được phép. | Cấp quyền SELECT tối thiểu, sử dụng Views để ẩn cột nhạy cảm. |
| Macro VBA | Macro có thể chứa mã độc. | Ký số macro, chỉ cho phép macro từ nguồn đáng tin cậy. |
| Data Refresh tự động | Tự động tải dữ liệu khi mạng không an toàn. | Thiết lập Refresh chỉ khi có VPN hoặc mạng nội bộ. |
8.1 Cấu Hình SSL cho Oracle
- Tạo Oracle Wallet trên server:
mkstore -wrl ./wallet -create. - Thêm certificate của CA.
- Cập nhật
sqlnet.ora:SSL_CLIENT_AUTHENTICATION = FALSE SSL_VERSION = 1.2 WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/wallet))) - Trên client, chỉnh
tnsnames.ora:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = your_host)(PORT = 1522)) (CONNECT_DATA = (SERVICE_NAME = your_service) ) (SECURITY = (SSL_SERVER_CERT_DN = "CN=your_server") ) )
9. Xử Lý Lỗi Thường Gặp Khi Kết Nối
9.1 Lỗi “Cannot find the file ‘tnsnames.ora’”
- Nguyên nhân: Oracle client không biết vị trí file
tnsnames.ora. - Giải pháp: Đặt biến môi trường
TNS_ADMINtrỏ tới thư mục chứatnsnames.ora. Ví dụ:set TNS_ADMIN=C:\oracle\network\admin.
9.2 Lỗi “ORA-12514: TNS:listener does not currently know of service requested in connect descriptor”
- Nguyên nhân: Service name sai hoặc chưa đăng ký.
- Giải pháp: Kiểm tra
listener.oravàtnsnames.ora, đảm bảo service tồn tại. Dùnglsnrctl servicesđể liệt kê.
9.3 Lỗi “Data source name not found and no default driver specified”
- Nguyên nhân: ODBC DSN không tồn tại hoặc driver chưa cài.
- Giải pháp: Tạo lại DSN, kiểm tra đường dẫn driver trong
odbcinst.ini.
9.4 Lỗi “Connection timed out”
- Nguyên nhân: Mạng chặn cổng, firewall, hoặc listener không phản hồi.
- Giải pháp: Ping server, kiểm tra cổng 1521 (hoặc 1522 nếu SSL). Thử
tnsping your_service.
9.5 Lỗi “ORA-00933: SQL command not properly ended”
- Nguyên nhân: Câu SQL không hợp lệ cho Oracle (ví dụ: dùng
TOPthay vìROWNUM). - Giải pháp: Sửa lại cú pháp cho chuẩn Oracle.
10. Các Kịch Bản Thực Tiễn
10.1 Báo Cáo Doanh Thu Hàng Tháng
- Tạo View trong Oracle:
sql CREATE OR REPLACE VIEW V_MONTHLY_REVENUE AS SELECT TO_CHAR(SALE_DATE, 'YYYY-MM') AS YEAR_MONTH, SUM(AMOUNT) AS TOTAL_REVENUE FROM SALES GROUP BY TO_CHAR(SALE_DATE, 'YYYY-MM'); - Power Query: Kết nối tới view
V_MONTHLY_REVENUE, load vào Excel. - Tạo Pivot Table → Đặt
YEAR_MONTHvào Rows,TOTAL_REVENUEvào Values. - Đặt Refresh tự động mỗi ngày đầu tháng.
10.2 Đối Chiếu Dữ Liệu ERP và Excel
- Oracle: Bảng
ERP_ITEMS. - Excel: File CSV chứa danh sách sản phẩm mới.
- Cách làm:
- Import
ERP_ITEMSvia Power Query. - Import CSV → Convert thành Table.
- Dùng Merge Queries trong Power Query để thực hiện left anti join (để tìm các mục không có trong ERP).
- Xuất kết quả ra sheet “Missing Items”.
10.3 Tự Động Gửi Email Khi Dữ Liệu Vượt Ngưỡng
- Power Query lấy dữ liệu KPI.
- VBA macro kiểm tra giá trị:
vba Sub CheckThresholdAndMail() Dim ws As Worksheet, val As Double Set ws = ThisWorkbook.Sheets("KPI") val = ws.Range("B2").Value If val > 1000000 Then Call SendMail("alert@example.com", "KPI Alert", "Giá trị KPI vượt quá ngưỡng.") End If End Sub - Gắn macro vào Workbook_Open hoặc Refresh event.
11. Tổng Kết
Kết nối Excel tới Oracle Database không chỉ giúp mở rộng khả năng phân tích dữ liệu mà còn tạo ra một môi trường làm việc linh hoạt, giảm thiểu công sức nhập liệu thủ công và giảm lỗi. Qua bài viết, bạn đã nắm bắt được:
- Chuẩn bị môi trường: cài đặt Oracle Instant Client, ODBC/OLE DB driver, cấu hình TNS.
- Các phương pháp kết nối: Power Query, ODBC, OLE DB, VBA.
- Cách tối ưu hiệu suất: lọc dữ liệu, caching, connection pooling.
- Bảo mật: không lưu mật khẩu, sử dụng SSL, cấp quyền tối thiểu.
- Xử lý lỗi phổ biến và các kịch bản thực tiễn trong doanh nghiệp.
Hãy áp dụng những kiến thức này vào dự án của bạn, tạo ra các báo cáo tự động, dashboard tương tác và nâng cao năng suất làm việc của toàn bộ đội ngũ. Khi cần mở rộng, bạn chỉ cần thay đổi query, thêm nguồn dữ liệu mới hoặc tích hợp với Power BI để xây dựng giải pháp phân tích dữ liệu toàn diện hơn.
Chúc bạn thành công trong việc kết nối Excel với Oracle và khai thác tối đa tiềm năng dữ liệu doanh nghiệp!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
