1. Buat Tabel dengan tanggal_lahir
CREATE TABLE karyawan (
emp_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
nama VARCHAR2(100),
jabatan VARCHAR2(100),
lokasi VARCHAR2(100),
tanggal_lahir DATE
);
2. Insert Data Sample (dengan tanggal lahir)
Saya isi tanggal lahir contoh yang wajar:
INSERT INTO karyawan (nama, jabatan, lokasi, tanggal_lahir)
VALUES ('Andi', 'Staff IT', 'Jakarta', DATE '1990-05-12');
INSERT INTO karyawan (nama, jabatan, lokasi, tanggal_lahir)
VALUES ('Sinta', 'HRD', 'Bandung', DATE '1992-11-03');
INSERT INTO karyawan (nama, jabatan, lokasi, tanggal_lahir)
VALUES ('Budi', 'Finance', 'Surabaya', DATE '1988-07-21');
INSERT INTO karyawan (nama, jabatan, lokasi, tanggal_lahir)
VALUES ('Ratna', 'Manager', 'Jakarta', DATE '1985-03-10');
3. Tes Hasil
SELECT * FROM karyawan;
4. using ROW_NUMBER()
CREATE OR REPLACE VIEW v_with_id AS
SELECT
ROW_NUMBER() OVER (ORDER BY nama) AS id,
nama,
lokasi,
jabatan
FROM karyawan;
select * from v_with_id;
5. using primary key ID Stabil (Konstan)
CREATE OR REPLACE VIEW v_with_id_pk AS
SELECT
emp_id AS id,
nama,
jabatan
FROM karyawan;
select * from v_with_id_pk;
6. using MD5/UUID
CREATE OR REPLACE FUNCTION md5_hash(p_text VARCHAR2)
RETURN VARCHAR2
DETERMINISTIC
AS
l_raw RAW(2000);
BEGIN
l_raw :=
DBMS_CRYPTO.HASH(
UTL_RAW.CAST_TO_RAW(p_text),
DBMS_CRYPTO.HASH_MD5
);
RETURN LOWER(RAWTOHEX(l_raw));
END;
/
CREATE OR REPLACE VIEW v_with_id_hash AS
SELECT
md5_hash(nama || '-' || TO_CHAR(tanggal_lahir, 'YYYY-MM-DD')) AS id,
nama,
tanggal_lahir,
jabatan
FROM karyawan;
select * from v_with_id_hash;






No comments:
Post a Comment