Ich möchte einen Untertyp in PLSQL machen, der nur diese Werte enthalten kann: '♠', '♥', '♦', '♣'
Ist das möglich? In meinem Code habe ich subtype suit_t is char(1)
, aber mit diesem Code ist es möglich, andere Zeichen in einer Variablen mit diesem Subtyp zu speichern. Und ja .. meine Benutzer sind ziemlich dumm, also möchte ich sie darauf beschränken.Oracle Database PLSQL Subtyp bestimmter Zeichen
2
A
Antwort
1
Ich glaube nicht, dass es möglich ist, dies direkt als Untertyp zu tun.
Mein Rat dafür ist eine Konstante in einem Paket zu verwenden. Hier ein Beispiel:
create or replace package P_SUIT is
-- Purpose : Handle possible chars
-- Public type declarations
--type <TypeName> is <Datatype>;
-- Public constant declarations
SPADES constant char:='♠';
HEARTS constant char:='♥';
CLUBS constant char:='♣';
DIAMONDS constant char:='♦';
-- Public variable declarations
--<VariableName> <Datatype>;
-- Public function and procedure declarations
function validate(c char) return boolean;
end P_SUIT;
create or replace package body P_SUIT is
-- Private type declarations
--type <TypeName> is <Datatype>;
-- Private constant declarations
--<ConstantName> constant <Datatype> := <Value>;
-- Private variable declarations
--<VariableName> <Datatype>;
-- Function and procedure implementations
function validate(c char) return boolean is
ret_val boolean := false;
begin
if c = P_SUIT.SPADES or c = P_SUIT.HEARTS or c = P_SUIT.CLUBS or c = P_SUIT.DIAMONDS then
ret_val := true;
else
ret_val := false;
end if;
return(ret_val);
end;
begin
-- Initialization
--<Statement>;
null;
end P_SUIT;
Jetzt ist es in Ihren PLSQL Bedingungen zu verwenden:
begin
if p_suit.validate('o') then
dbms_output.put_line('yes');
else dbms_output.put_line('no');
end if;
if p_suit.validate('♠') then
dbms_output.put_line('yes');
else dbms_output.put_line('no');
end if;
if p_suit.validate(p_suit.HEARTS) then
dbms_output.put_line('yes');
else dbms_output.put_line('no');
end if;
end;
Verwandte Themen
- 1. oracle database: teile eine Zeichenkette nach Zeichen
- 2. PLsql oder Oracle Sql
- 3. PLSQL Oracle APEX
- 4. Oracle/PLSQL-Leistung
- 5. Oracle/PLSQL- Substring Bis zum nächsten Vorkommen von Zeichen
- 6. PLSQL Oracle Cursor in Prozedur
- 7. Oracle-Datenbank Verbindungszeichenfolge PLSQL-Kompatibilität
- 8. Oracle PLSQL Abhängigkeitskette (Ungültige Objekte)
- 9. Oracle PLSQL Cursor verschachtelt Fall
- 10. PLSQL-Extrakt procudures oracle 9i
- 11. ORACLE/PLSQL: Keine Daten gefunden
- 12. ORACLE Database Reporting Ausgabe
- 13. Oracle Database Kompilierungsfehler
- 14. Oracle Database Multiple Instance
- 15. Oracle Database 12c Installationsproblem
- 16. In Oracle Database, wie extrahieren Sie Text zwischen Zeichen? (SQL)
- 17. Wie mehrere Wert in Oracle Database 12c
- 18. Aufruf Java von Oracle, PLSQL oracle.aurora.vm.ReadOnlyObjectException
- 19. Oracle Database Connectivity mit Java
- 20. mit Oracle Database Connecting nicht
- 21. Oracle PLSQL Rückkehr einer Reihe Typ
- 22. Wie XML-Datei in Oracle PLSQL
- 23. Oracle PLSQL Ausnahme Einfügen von Daten
- 24. Update-Spalte funktioniert nicht in Oracle PLSQL
- 25. PLSQL/Oracle How To „Karte“/„Normalisieren“ Nummer
- 26. Pass select-Anweisung zu Oracle PLSQL
- 27. Oracle-Transaktionen in einer PLSQL-Prozedur
- 28. Bestücken Poppliste in plsql von oracle db
- 29. Oracle plsql Switch Case und sqlplus Spool
- 30. Oracle PLSQL Alter/Drop Attribute des Objekttyps
Warum nicht einfach definieren Sie die Spalte mit einer Check-Einschränkung? –