作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,我想创建自己的 bool 类型并将其命名为 Bool。我怎么做?
或者一种交通信号灯类型,即其中只有红色、黄色、绿色(当然是空的)。
最佳答案
我不认为 A.B.Cade 提供的解决方案是完全正确的。让我们假设程序是这样的:procedure TestEnum(enum_in lights);
enum_in
的值是多少?红色的?黄色?绿色?
我提出了另一种解决方案。这是包示例
CREATE OR REPLACE PACKAGE pkg_test_enum IS
SUBTYPE TLight IS BINARY_INTEGER RANGE 0..2;
Red CONSTANT TLight := 0;
Yellow CONSTANT TLight := 1;
Green CONSTANT TLight := 2;
--get sting name for my "enum" type
FUNCTION GetLightValueName(enum_in TLight) RETURN VARCHAR2;
PROCEDURE EnumTest(enum_in TLight);
END pkg_test_enum;
CREATE OR REPLACE PACKAGE BODY pkg_test_enum IS
FUNCTION GetLightValueName(enum_in TLight)
RETURN VARCHAR2
IS
ResultValue VARCHAR2(6);
BEGIN
CASE enum_in
WHEN Red THEN ResultValue := 'Red';
WHEN Green THEN ResultValue := 'Green';
WHEN Yellow THEN ResultValue := 'Yellow';
ELSE ResultValue := '';
END CASE;
RETURN ResultValue;
END GetLightValueName;
PROCEDURE EnumTest(enum_in TLight)
IS
BEGIN
--do stuff
NULL;
END EnumTest;
END pkg_test_enum;
TLight
在不同的包中。我现在可以测试
enum_in
针对预定义的值或 null。
begin
pkg_test_enum.EnumTest(pkg_test_enum.Red);
end;
SUBTYPE TLight IS BINARY_INTEGER RANGE 0..2 NOT NULL;
关于plsql - 如何在 PL/SQL 中创建枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500515/
我是一名优秀的程序员,十分优秀!