-- UPDATE NO_KTP AGAR 16 DIGIT, ANGKA TERKAHIR AMBIL DARI ROW_NUMBER
DO $$
DECLARE
urut VARCHAR;
NOREG VARCHAR;
CUR1 CURSOR FOR SELECT "NO_REG", row_number() over (order by "NO_REG") as urutan FROM (
select "NO_REG","NO_KTP",LENGTH("NO_KTP") AS KTP from "NSB_P") A
WHERE KTP<>16;
BEGIN
OPEN CUR1;
LOOP
FETCH next from CUR1 INTO NOREG, urut;
EXIT WHEN NOT FOUND;
IF LENGTH(urut)=1 THEN
UPDATE "NSB_P"
SET "NO_KTP"=CONCAT('030100000000000',urut)
WHERE "NO_REG"=NOREG;
END IF;
IF LENGTH(urut)=2 THEN
UPDATE "NSB_P"
SET "NO_KTP"=CONCAT('03010000000000',urut)
WHERE "NO_REG"=NOREG;
END IF;
IF LENGTH(urut)=3 THEN
UPDATE "NSB_P"
SET "NO_KTP"=CONCAT('0301000000000',urut)
WHERE "NO_REG"=NOREG;
END IF;
IF LENGTH(urut)=4 THEN
UPDATE "NSB_P"
SET "NO_KTP"=CONCAT('030100000000',urut)
WHERE "NO_REG"=NOREG;
END IF;
IF LENGTH(urut)=5 THEN
UPDATE "NSB_P"
SET "NO_KTP"=CONCAT('03010000000',urut)
WHERE "NO_REG"=NOREG;
END IF;
END LOOP;
CLOSE CUR1;
END $$;
Langganan:
Posting Komentar (Atom)
Dynamic Query - SQL Server
Berikut adalah contoh dari bentuk dari Dynamic Query di SQL Server yang dibungkus ke dalam Store Procedure: USE [Data00] GO SET ANSI_NULLS ...
Popular Posts
-
select round(5.123456 , 2) from dual ==> 5.12 select round(5.87654 , 2) from dual ==> 5.88 select floor(5.89) from dual ==> 5 s...
-
round((case when adjpk.nilai_jaminan<>0 then ((tabkredit.baki*100)/(COALESCE(adjpk.nilai_jaminan,0))) els...
-
USE [DATABASENYA] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[SendEmailHardiskSize] as begin ...
Tidak ada komentar:
Posting Komentar