2011-04-04 152 views

回答

0

在参数中,接收来自调用者的数据。 out参数将数据推送给它们的调用者(通过引用调用)。 inout参数都可以。我不确定如何在没有更清楚的知道你想知道的内容的情况下如何使它更加详细。

+0

我想知道他们是如何通过价值管理,由参ECC。 – xdevel2000 2011-04-04 12:07:41

+0

然后告诉我们你正在使用哪个数据库。 – bmargulies 2011-04-04 12:09:06

+0

是的,我正在使用MySQL 5.5 – xdevel2000 2011-04-04 12:11:11

3

IN参数按值传递给SP。 OUT参数通过值从SP返回。 INOUT参数按引用传递,因为它们包含一个值,另一个值出现。

+0

最后一部分在SQL Server中不正确。 – 2011-04-04 11:50:58

+0

无论如何,这就是它在LINQ2SQL中完成的方式。也许你是对的。我认为这是更一般的。 – 2011-04-04 11:52:57

+0

只要阅读你的链接,它会反驳TSQL。由于提问者没有指定一种语言,我认为我的答案更一般。 – 2011-04-04 11:55:06

5

mysql> CREATE PROCEDURE in_2(IN value INT)BEGIN SELECT value; SET value =100;SE 
    LECT value;END// 
    Query OK, 0 rows affected (0.00 sec) 

    mysql> SET @s =9// 
    Query OK, 0 rows affected (0.00 sec) 

    mysql> CALL in_2(@s)// 
    +-------+ 
    | value | 
    +-------+ 
    |  9 | 
    +-------+ 
    1 row in set (0.00 sec) 

    +-------+ 
    | value | 
    +-------+ 
    | 100 | 
    +-------+ 
    1 row in set (0.00 sec) 

mysql> SELECT @s; 
    -> // 
+------+ 
| @s | 
+------+ 
| 9 | 
+------+ 
1 row in set (0.00 sec) 

2.OUT

mysql> CREATE PROCEDURE in_3(OUT value INT) 
    -> SET value=100// 
Query OK, 0 rows affected (0.00 sec) 

mysql> SET @x=56// 
Query OK, 0 rows affected (0.00 sec) 

mysql> CALL in_3(@x)// 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT @x// 
+------+ 
| @x | 
+------+ 
| 100 | 
+------+ 
1 row in set (0.00 sec) 
+0

INOUT是什么? – 2016-06-25 16:46:27

+0

https://stackoverflow.com/questions/11267868/out-or-inout-parameter-not-working – zloctb 2017-08-31 11:42:35

相关问题