FSN#25871 refreshlegenda functie
svn path=/Database/trunk/; revision=19033
This commit is contained in:
@@ -1,9 +1,72 @@
|
||||
#ifdef CAD // 22-05-1998 KTH
|
||||
/*
|
||||
/*
|
||||
* $Revision$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/REATE OR REPLACE PACKAGE BODY cad
|
||||
AS
|
||||
PROCEDURE refreshlegenda (themakey IN NUMBER, reinit IN NUMBER)
|
||||
AS
|
||||
vname cad_thema.cad_thema_view%TYPE;
|
||||
lkey cad_thema.cad_legenda_key%TYPE;
|
||||
tomschrijving cad_thema.cad_thema_omschrijving%TYPE;
|
||||
sql_stmt VARCHAR2 (1000);
|
||||
newlegenda BOOLEAN := FALSE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
-- Welke domein en welke legenda?
|
||||
SELECT cad_thema_view, cad_legenda_key, cad_thema_omschrijving
|
||||
INTO vname, lkey, tomschrijving
|
||||
FROM cad_thema
|
||||
WHERE cad_thema_key = themakey;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
newlegenda := TRUE;
|
||||
END;
|
||||
|
||||
|
||||
IF newlegenda OR lkey IS NULL
|
||||
THEN
|
||||
-- nieuwe legenda
|
||||
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet)
|
||||
VALUES (tomschrijving, 1)
|
||||
RETURNING cad_legenda_key
|
||||
INTO lkey;
|
||||
|
||||
-- gebruiken bij dit thema
|
||||
UPDATE cad_thema
|
||||
SET cad_legenda_key = lkey
|
||||
WHERE cad_thema_key = themakey;
|
||||
END IF;
|
||||
|
||||
sql_stmt :=
|
||||
'INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) '
|
||||
|| 'SELECT DISTINCT '
|
||||
|| TO_CHAR (lkey)
|
||||
|| ', waarde, '
|
||||
|| 'TO_CHAR(DBMS_UTILITY.get_hash_value (waarde, 0, POWER (2, 24)), ''0XXXXX'')'
|
||||
|| ', REPLACE(waarde, ''*'', '''')'
|
||||
|| ' FROM '
|
||||
|| vname
|
||||
|| ' thv WHERE waarde IS NOT NULL';
|
||||
|
||||
DBMS_OUTPUT.put_line (sql_stmt);
|
||||
|
||||
IF reinit <> 1
|
||||
THEN
|
||||
sql_stmt :=
|
||||
sql_stmt || ' AND NOT EXISTS '
|
||||
|| ' (SELECT cl.cad_legendawaarde_value FROM cad_legendawaarde cl WHERE cl.cad_legendawaarde_value = thv.waarde AND cl.cad_legenda_key = '
|
||||
|| TO_CHAR (lkey)
|
||||
|| ')';
|
||||
END IF;
|
||||
|
||||
EXECUTE IMMEDIATE sql_stmt;
|
||||
END;
|
||||
END cad;
|
||||
/
|
||||
REGISTERRUN('$Workfile: CAD_PAC.SRC $','$Revision$')
|
||||
|
||||
#endif // CAD
|
||||
|
||||
Reference in New Issue
Block a user