私が理解している限り、OUT
(およびIN
/INOUT
)のパラメータタイプでMySQL does not supportの機能を理解しています。 私はOUTパラメータを使用してMySQL関数をエミュレートする方法
DROP FUNCTION IF EXISTS `GETGOSTAUTHRUS`;
CREATE DEFINER = `root`@`localhost` FUNCTION `GETGOSTAUTHRUS`(`PublID` int)
RETURNS varchar(1024) CHARSET utf8
BEGIN
RETURN .....;
END;
この関数はSELECT
のステートメントから呼び出される関数を作成しています:
SELECT
GETGOSTAUTHRUS(p.ID) `AuthList`,.......
FROM....
すべてが正常に動作します。しかし、私は機能を拡張するとvarchar型の別の値を返す必要がありますが、私は手続きの宣言にそうであるように、私は同じようにout prefix varchar(50)
変数を宣言することはできません。
CREATE procedure `GETGOSTAUTHRUS`(PublID int, OUT prefix varchar(50))
BEGIN
私が発明した唯一の方法アウトは別のものを宣言することですそれを別々に呼び出すことはできますが、2番目の関数がテーブルから同じデータをフェッチして処理するため最適ではないようです。
問題をどうすれば管理できますか?
http://www.mysqltutorial.org/stored-procedures-parameters.aspx –
@ColourDalnetはい、ありがとうございます。それは私のQのリンクから入手可能な記事とほぼ同じです –