19. März 2014

INC und DEC sollte man in PL/SQL Libraries nicht benutzen

In meiner ältesten PL/SQL-Library in Forms 4 waren dies meine ersten Prozeduren:

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

In neueren Versionen von Oracle Forms funktioniert dies nun nicht mehr

Und warum? Oracle hat in PL/SQL einen neuen SUBTYPE für DECIMAL erzeugt und ihn "DEC" genannt. Diesen TYPE kann man zum Beispiel zur Variablendeklaration benutzen:
DECLARE
  V_Value   DEC;
BEGIN
... 
 
Das zerstört natürlich meine Prozedur in der PL/SQL-Library :-(
Alle anderen Sprachen kennen von Hause aus schon INC und DEC. Nur nicht Oracle!

Also immer schön acht geben beim erzeugen von neuen Funktionen die für lange Zeit gültig sein sollen :-)
Gerd

8. Januar 2014

Neues Statement of Direction, September 2013

Die aktuellen Supportzeiträume von Forms und Reports findet man in diesem Dokument.

Das Wichtigste auf einen Blick:


Hier geht's zu meinen älteren Statement of Directions Privatkopien:

SoD Oracle Fusion 2013 / 09
SoD Forms 2012 / 03
SoD Oracle Fusion 2010 / 05
SoD Forms 2009 / 07
SoD Forms 2008 / 07
SoD Forms 2007 / 11
SoD Forms 2005 / 09
SoD Forms 2005 / 05
SoD Forms 2005 / 03
SoD Forms 2004 / 06

Mein vorheriger Artikel zu diesem Thema ist hier zu finden