【问题标题】:Get number of arguments for a stored procedure获取存储过程的参数数量
【发布时间】:2009-07-28 12:17:14
【问题描述】:

我想获取 MySql 中存储过程所需的参数数量。这可能吗?

我的第一个想法是尝试

SELECT * FROM information_schema.ROUTINES;

但据我所知,其中没有关于参数数量的信息。下一次尝试是

SHOW PROCEDURE STATUS;

但这似乎只是返回第一个查询的子集。

我的目标是能够在 PHP 中“NULL-pad”一个 sproc 调用以避免类似的错误

"Incorrect number of arguments for PROCEDURE schema.table; expected nn, got mm

制作静态查找表当然可以,但肯定是不可取的。当然,可以解析返回的消息,更改查询并重试,但这似乎也不是很好。

提前致谢! /维克多

【问题讨论】:

    标签: mysql stored-procedures arguments


    【解决方案1】:

    您可以通过以下方式检索参数列表:

    选择不同的 姓名, 参数列表 从 mysql.proc WHERE db=DATABASE();

    【讨论】:

    • 谢谢!格式仍然有点尴尬,但至少所有信息都在那里并且可以解析。遗憾的是,它的格式仅与用于创建过程的字符串一样好(例如,可以省略 IN/OUT/INOUT)。
    【解决方案2】:

    【讨论】:

    • 感谢您的回复,但不幸的是,该声明似乎有两个缺点。 1:它返回整个过程——需要大量的解析和大量不必要的数据。 2:需要您是函数的创建者,否则“创建过程”部分为空,无法提取信息。不管怎么说,还是要谢谢你! /维克多
    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2011-03-02
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多