Lewati ke isi

Pengembangan Skrip / Objek Konektor DFF.CONN / Database Oracle

Objek operasi Konektor database Oracle terutama menyediakan metode operasi database Oracle.

Parameter DFF.CONN(...) adalah sebagai berikut:

Parameter Tipe Wajib / Nilai Default Keterangan
connector_id str Wajib ID Konektor
database str None Menentukan Oracle Service Name

.query(...)

Menjalankan pernyataan SQL dan mengembalikan hasil kueri dalam format list[dict], dengan parameter sebagai berikut:

Parameter Tipe Wajib / Nilai Default Keterangan
sql str Wajib Pernyataan SQL, dapat berisi placeholder parameter.
? menunjukkan parameter yang perlu di-escape;
?? menunjukkan parameter yang tidak perlu di-escape
sql_params list None Parameter SQL
Contoh
1
2
3
sql = 'SELECT * FROM ?? WHERE seq > ?'
sql_params = ['demo', 1]
result = db.query(sql, sql_params=sql_params)

.non_query(...)

Menjalankan pernyataan SQL seperti insert, update, atau delete dan mengembalikan jumlah baris yang terpengaruh. Parameternya sama dengan .query(...).

Contoh
1
2
3
sql = 'DELETE FROM ?? WHERE id = ?'
sql_params = ['demo', 1]
affected_rows = db.non_query(sql, sql_params=sql_params)

.query(...) dan .non_query(...) akan secara otomatis melakukan commit transaksi setelah berhasil dieksekusi; jika gagal, akan otomatis melakukan rollback dan melempar pengecualian.

Transaksi

Jika perlu menjalankan beberapa pernyataan SQL dalam transaksi yang sama, gunakan metode berikut:

Metode Keterangan
.start_trans() Memulai transaksi dan mengembalikan objek koneksi transaksi
.trans_query(trans_conn, sql, sql_params=None) Menjalankan kueri dalam transaksi dan mengembalikan list[dict]
.trans_non_query(trans_conn, sql, sql_params=None) Menjalankan SQL non-kueri dalam transaksi dan mengembalikan jumlah baris yang terpengaruh
.commit(trans_conn) Melakukan commit transaksi dan menutup koneksi transaksi
.rollback(trans_conn) Melakukan rollback transaksi dan menutup koneksi transaksi

Jika terjadi pengecualian selama eksekusi transaksi, panggil .rollback(trans_conn); objek koneksi transaksi yang sama tidak dapat digunakan lagi setelah commit atau rollback selesai.

Pernyataan SQL Dinamis

Secara internal, query(...) dan non_query(...) menggunakan DFF.SQL(...) untuk menyusun pernyataan SQL dan mendukung konstruksi pernyataan SQL dinamis yang kompleks.

Seperti nilai dengan jumlah yang tidak tentu untuk WHERE IN (...), atau penulisan data secara massal menggunakan INSERT INTO ... VALUES ..., dan sebagainya.

Untuk detail, silakan lihat Pengembangan Skrip / Konstruksi SQL DFF.SQL