簡體   English   中英

存儲過程輸出變量

[英]Stored procedure output variable

我正在嘗試運行一個過程,該過程接受查詢的參數“表”,並將結果作為輸出參數。 但是,它顯示為未聲明的變量:結果

我已經仔細檢查過沒有拼寫錯誤,但仍然不知道它是怎么發生的。 有人可以提供一些幫助或指導嗎

CREATE DEFINER=`root`@`localhost` PROCEDURE `Function`(IN table varchar(10), OUT result varchar (10))
BEGIN

    SET @q = CONCAT ('
        Select `field` from `',table,'` into result limit 1;');


    PREPARE stmt from @q;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

END

嘗試:

...
-- SET @q = CONCAT ('Select `field` from `',table,'` into result limit 1;');
SET @`q` := CONCAT('SELECT `der`.`field`
                    FROM (SELECT `field` FROM `', `table`, '` LIMIT 1) `der`,
                         (SELECT @`result` := NULL) `init`
                         INTO @`result`;');
PREPARE `stmt` from @`q`;
EXECUTE `stmt`;
SET `result` := @`result`;
DEALLOCATE PREPARE `stmt`;
...

指出9.4之間的區別很重要 用戶定義的變量和例程參數13.1.15。 CREATE PROCEDURE和CREATE FUNCTION語法是不同的變量。

SQL Fiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM