2011-04-04 39 views

Respuesta

0

Um, en los parámetros reciben los datos de su persona que llama. Los parámetros de salida envían datos a su interlocutor (llamada por referencia). en todos los parámetros hacen ambos. No estoy seguro de cómo hacer esto más detallado sin una idea más clara de qué es lo que quieres saber.

+0

Me gustaría saber cómo se gestionan por valor, por ECC ref. – xdevel2000

+0

Entonces díganos qué base de datos está utilizando. – bmargulies

+0

Sí, estoy usando MySQL 5.5 – xdevel2000

3

Los parámetros IN se pasan al SP por valor. Los parámetros OUT se devuelven desde el SP por valor. Los parámetros INOUT se pasan por referencia, ya que contienen un valor que entra y sale otro.

+0

La última parte no es verdadera en SQL Server. –

+0

Bueno, así es como se hace en LINQ2SQL, de todos modos. Puede que tengas razón. Pensé que era más general. –

+0

Simplemente lea su enlace, se refiere a TSQL. Como el asker no especifica un idioma, mi respuesta es más general, creo. –

5

1. En

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

¿qué pasa con 'INOUT'? –

+0

https://stackoverflow.com/questions/11267868/out-or-inout-parameter-not-working – zloctb

Cuestiones relacionadas