"Boolean" Parameter für Oracle gespeicherte Prozedur

8

Mir ist bewusst, dass Oracle keinen booleschen Typ für Parameter hat, und nehme momentan einen NUMBER-Typ an, der 1/0 für True / False (anstelle des 'Y' / 'N' CHAR) hätte (1) Ansatz).

Ich bin kein sehr fortgeschrittener Oracle-Programmierer, aber nachdem ich einige ASKTOM-Posts gegraben und gelesen habe, scheint es, als könnten Sie ein Feld mit einem Format für die Spalte einschränken:

MyBool NUMBER(1) CHECK (MyBool IN (0,1))

Gibt es eine Möglichkeit, die gleiche Art einer Prüfbedingung auf einen Eingabeparameter für eine gespeicherte Prozedur anzuwenden? Ich möchte die möglichen Eingaben auf 0 oder 1 beschränken, anstatt explizit nach Erhalt der Eingabe danach zu suchen.

    
Jay S 02.11.2010, 16:12
quelle

2 Antworten

25

Sie können Boolesche Werte als Parameter für gespeicherte Prozeduren verwenden:

%Vor%

Allerdings können Sie Boolesche Ausdrücke in SQL nicht verwenden, z. Anweisungen auswählen:

%Vor%

Für einen Parameter "number" gibt es keine Möglichkeit, eine "check constraint" deklarativ hinzuzufügen, Sie müssten eine Validierung codieren, z. B.

%Vor%     
Tony Andrews 02.11.2010, 16:16
quelle
2

Ja und nein. Sie können tun ..

%Vor%

Die gute Nachricht ist, dass Sie

tun %Vor%

es meldet einen Fehler.

Die schlechte Nachricht ist, dass wenn Sie

tun %Vor%

dann erhalten Sie keinen Fehler

    
Gary Myers 02.11.2010 22:24
quelle

Tags und Links