Es ist soweit! Oracle Forms 14 wurde heute gelaunched.
Nach über 10 Jahren kommt damit endlich wieder ein Major Release raus mit vielen neuen Features. In den nächsten Tagen werde ich detailliert darüber berichten.
Es ist soweit! Oracle Forms 14 wurde heute gelaunched.
Nach über 10 Jahren kommt damit endlich wieder ein Major Release raus mit vielen neuen Features. In den nächsten Tagen werde ich detailliert darüber berichten.
CREATE TABLE Logging (
ID NUMBER(9) NOT NULL,
SESSION_ID NUMBER(9),
INSERT_DATE DATE NOT NULL,
INSERT_USER VARCHAR2(30) NOT NULL,
TEXT VARCHAR2(2000) NOT NULL);
CREATE SEQUENCE Logging_SEQ;
CREATE OR REPLACE VIEW Logging_desc_V
(ID, SESSION_ID, INSERT_DATE, INSERT_USER, TEXT)
AS SELECT ID, SESSION_ID, INSERT_DATE, INSERT_USER, TEXT
FROM Logging
ORDER BY SESSION_ID DESC, ID DESC;
CREATE OR REPLACE PACKAGE PK_DEBUG IS
FUNCTION Debug_allowed RETURN BOOLEAN;
FUNCTION Next_ID RETURN NUMBER;
PROCEDURE Disable;
PROCEDURE Enable;
PROCEDURE Destroy;
PROCEDURE Init (P_Debug_allowed IN BOOLEAN DEFAULT TRUE);
PROCEDURE Write (P_Text IN VARCHAR2,
P_Session_ID IN NUMBER DEFAULT NULL);
G_Debug_allowed BOOLEAN := TRUE;
G_Session_ID NUMBER;
END;
/
CREATE OR REPLACE PACKAGE BODY PK_DEBUG IS
FUNCTION Debug_allowed RETURN BOOLEAN IS
BEGIN
RETURN (G_Debug_allowed);
END;
FUNCTION Next_ID RETURN NUMBER IS
V_ID NUMBER;
BEGIN
SELECT Logging_SEQ.nextval
INTO V_ID
FROM DUAL;
RETURN (V_ID);
END;
PROCEDURE Disable IS
BEGIN
G_Debug_allowed := FALSE;
END;
PROCEDURE Enable IS
BEGIN
G_Debug_allowed := TRUE;
END;
PROCEDURE Destroy IS
BEGIN
Write ('----------------------stopp '
|| to_char (G_Session_ID) || '--');
G_Session_ID := NULL;
END;
PROCEDURE Init (
P_Debug_allowed IN BOOLEAN DEFAULT TRUE) IS
BEGIN
G_Debug_allowed := P_Debug_allowed;
G_Session_ID := Next_ID;
Write ('--start ' || to_char (G_Session_ID)
|| '----------------------');
END;
PROCEDURE Write (
P_Text IN VARCHAR2,
P_Session_ID IN NUMBER DEFAULT NULL) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF Debug_allowed THEN
IF G_Session_ID IS NULL THEN
Init;
END IF;
INSERT INTO Logging (ID,
Session_ID,
Insert_Date,
Insert_User,
Text)
VALUES (Next_ID,
NVL (P_Session_ID, G_Session_ID),
Sysdate,
User,
P_Text);
COMMIT;
END IF;
END;
END;
/
pk_Debug.Init;
pk_Debug.Write ('Hello World - ' || V_Test);
pk_Debug.Destroy;
ID Session Insert-Date Text ============================================ 24 21 10.09.-12:38:48 -------stopp 21-- 23 21 10.09.-12:38:48 Hello World - 42 22 21 10.09.-12:38:48 --start 21-------
PROCEDURE Inc (P_Number IN OUT NUMBER) IS BEGIN P_Number := P_Number + 1; END; PROCEDURE Dec (P_Number IN OUT NUMBER) IS BEGIN P_Number := P_Number - 1; END;Diese Prozeduren nutze ich seit 20 Jahren in der ein oder anderen Variation. Manchmal mit zwei Parametern, oft auch nur mit einem Parameter. In der ganzen Zeit gab es nie Probleme
DECLARE V_Value DEC; BEGIN ...
Das zerstört natürlich meine Prozedur in der PL/SQL-Library :-(