Thursday, April 9, 2026

.::: Sample lab Using OPENROWSET in Microsoft SQL Server 2025 :::.

 

A. prerequirement

1. prerequirement 
Access Database Engine 2016 (x64)

https://www.microsoft.com/en-us/download/details.aspx?id=54920

2. enable access service 
 


3. AKTIFKAN OPENROWSET


Di Microsoft SQL Server:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

 C. Testing openrowset

1. PREPARE TABLE (kamu sudah benar)

Pastikan ini sudah ada di DB teguhth:
untuk lab, sementara skip FK dulu (biar tidak ribet)

CREATE TABLE pembelian(
    KODE_PEMBELIAN char(10),
    KODE_BARANG char(6),
    KODE_CUSTOMER char(6),
    TANGGAL_PEMBELIAN date,
    JUMLAH_PEMBELIAN decimal(4,0),
    PRIMARY KEY(KODE_PEMBELIAN,KODE_BARANG,KODE_CUSTOMER)
);


2. BUAT FILE EXCEL (INI KUNCI)

Buat file misalnya:

C:\backup\pembelian.xlsx
Sheet: Sheet1

penting:

header = nama kolom
format date = valid
jangan ada spasi aneh
 


3. TEST SELECT DARI EXCEL
kalau berhasil keluar rowset dari Excel

SELECT *
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=YES;Database=C:\backup\pembelian.xlsx',
    'SELECT * FROM [Sheet1$]'
);

SELECT *
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.16.0',
    'Excel 12.0;HDR=YES;Database=C:\backup\pembelian.xlsx',
    'SELECT * FROM [Sheet1$]'
);

 

4. INSERT KE TABLE (INI SIMULASI PRODUCTION)
 
INSERT INTO teguhth.dbo.pembelian
(
    KODE_PEMBELIAN,
    KODE_BARANG,
    KODE_CUSTOMER,
    TANGGAL_PEMBELIAN,
    JUMLAH_PEMBELIAN
)
SELECT 
    KODE_PEMBELIAN,
    KODE_BARANG,
    KODE_CUSTOMER,
    TANGGAL_PEMBELIAN,
    JUMLAH_PEMBELIAN
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=YES;Database=C:\backup\pembelian.xlsx',
    'SELECT * FROM [Sheet1$]'
);
 
 

5. Verifikasi data
 
select * from teguhth.dbo.pembelian;
 
 


6. error sample

ERROR YANG SERING TERJADI
“Cannot initialize OLE DB provider”

provider belum install

“Access denied”

SQL Server service tidak punya akses ke folder

“Sheet not found”

harus:

[Sheet1$]

bukan:

Sheet1
Data type mismatch

Excel:

kosong dianggap NULL
angka kadang jadi float

No comments:

Post a Comment

Popular Posts