少なくともバージョン 5.0.51a-24+lenny5 (Debian) では、列挙型が MySQL 内で壊れているように思えます。列挙型フィールドを含む単純なルックアップ テーブルがあります。
CREATE TABLE `FrameworkServices` (
...
`DNSType` enum('IP','CNAME') NOT NULL,
...
)
アドホック、問題なく次を実行できます。
SELECT DNSType, CNameOrIP INTO @hackEnum, @ipAddress
FROM FrameworkServices WHERE FrameworkTypeId = 1 LIMIT 1;
SELECT @hackEnum, @ipAddress;
ただし、まったく同じコードをプロシージャに入れると、@hackEnum は空を返します (少なくとも TOAD では null ではありません)。
DNSType+0、CONCAT(DNSType,'') など、列挙型で有効と思われるものすべてを選択してみましたが、結果は同じです。私が読んだすべての記事はアドホックに機能しますが、手順内では空を返します!
ローカル変数を使用して、hackEnum を同じ ENUM タイプとして定義しようとさえしました。