Category: DB2


Judul yang sangat panjang xixixi… :mrgreen:

Kali ini bukan sekedar postingan to share to others.. tapi sebagai catatan buat saya pribadi juga. Hari ini saya mencoba backup database DB2 IBM v 8 (Windows XP), tapi gagal dengan error : The database must be restarted because the previous session did not conclude normally. SQLSTATE=55025

Dan untuk me-resolve hal ini, saya kira cukup restart database-nya saja. Ternyata masih tidak cukup. Akhirnya, saya masuk dulu ke database yang saya mau backup, dalam hal ini yaitu SCCDEDCM (nama database yg mau saya backup). Perintah untuk masuk ke database tersebut (melalui DB2 CLP) yaitu connect to SCCDEDCM.

Setelah itu, close DB2 CLP. Buka lagi DB2 CLP, lalu restart DB2 (perintahnya seperti biasa yaitu db2stop [force] lalu db2start). Kalau distop gagal karena database currently in use, gunakan option force.

Note: DB2 CLP = DB2 Command Line Processor

Fun kk. BOFF!

Artikel ini hanya mau share ttg bagaimana kita berinteraksi dengan tipe data Date & Time in DB2. Is it simple? Yes it is.

Untuk mendapatkan current date, time, atau timestamp melalui SQL dari register DB2:

SELECT current date FROM sysibm.sysdummy1
SELECT current time FROM sysibm.sysdummy1
SELECT current timestamp FROM sysibm.sysdummy1

Jadi, sysibm.sysdummy1 merupakan table memory yang dapat digunakan untuk mendapatkan nilai-nilai yg ada di register DB2. Kita juga bisa mengakses tabel memori ini melalui DB2 Command Line Processor (CLP), tinggal kita gunakan keyword VALUES. Contoh:

VALUES current date
VALUES current time
VALUES current timestamp

Untuk mendapatkan current timestamp GMT/CUT, ganti aja jadi begini:

current time - current timezone
current timestamp - current timezone

Lalu untuk mendapatkan tahun, bulan, tanggal, jam, menit, detik dan milidetik dari suatu nilai timestamp, berikut ini fungsi-fungsinya: Continue reading

Fetch first row in DB2

Today I face a problem: If I select data using order by transaction_date, the result will be ordered by date (ascending by default) an row count may be more than 1. This is query that I’m use:

SELECT * FROM transaction ORDER BY transaction_date

But, cost (of I/O) of this query is too big.. this query execution will need very long time depend on how many data in table Transaction. I don’t want use this query, but I need the latest data transaction, I need first row only.

In DB2, we can simplify this matter, just modify query above to be like this:

SELECT * FROM transaction ORDER BY transaction_date FETCH FIRST ROW ONLY

Using this new query, cost of I/O will be small, and query execution will be so fast 8-)

TRIM in DB2

Today I want to try how to TRIM in select, using database DB2.
We can use function RTRIM (for TRIM right space) or LTRIM (TRIM left space).

For example.. assume that we have column field1 in table transactions with datatype varchar and have value ‘   hello’:

SELECT LTRIM(field1) FROM transactions

Cobe above will return ‘hello’ respectively. So simple :)

Follow

Get every new post delivered to your Inbox.

Join 1,515 other followers