【问题标题】:PL-SQL - Can I pass enum as function argument?PL-SQL - 我可以将枚举作为函数参数传递吗?
【发布时间】:2020-06-09 07:07:10
【问题描述】:

我的表中有一个名为“type”的字段/列,其中枚举数据类型,我希望为我的 PL-SQL 函数使用类似类型的参数。

我可以将枚举作为函数参数传递吗?

我尝试了以下函数(对于 mySQL),但它确实接受枚举作为函数参数/参数。

CREATE FUNCTION `save_type` (type('new', 'existing', 'xyz') IN enum)

RETURNS INTEGER
BEGIN

RETURN 1;
END

【问题讨论】:

    标签: mysql function enums parameter-passing


    【解决方案1】:

    您可以将 ENUM 类型用于函数参数,但您的 MySQL 语法错误。

    这行得通:

    CREATE FUNCTION `save_type` (type enum('new', 'existing', 'xyz'))
    
    RETURNS INTEGER
    DETERMINISTIC
    BEGIN
    
    RETURN 1;
    END
    

    区别:

    • 列出enum 关键字后面的枚举值。
    • 对于 MySQL 存储函数,INOUT 参数没有选项。
    • 应使用DETERMINISTICNO SQLREADS SQL DATA 之一声明函数。

    【讨论】:

      【解决方案2】:

      函数参数必须是 MySQL 数据类型。不支持ENUM

      建议完全远离ENUM。为可读值使用单独的表格,以便您以后可以在需要时更改它们而无需大费周章。

      【讨论】:

        猜你喜欢
        • 2012-06-23
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 2011-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        相关资源
        最近更新 更多