[英]Multiple stored procedures within stored procedure, returns only first stored procedure output variable
[英]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語法是不同的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.