私はサブタイプとして直接これを行うことが可能であるとは思いません。このため
私のアドバイスは、パッケージ内の定数を使用することです。次に例を示します。
今
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;
あなたのPLSQL条件でそれを使用する:
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;
なぜ単にチェック制約で列を定義していませんか? –