2012-01-03 2 views
0
FOR I = 1 TO 10 
    tRESNUM = ALLTRIM(STR(I)) 
    tRESCAS = 'tRESCAS'+tRESNUM   

    &tRESCAS = 0.00 

ENDFOR  

Я преобразовываю этот код fox-pro в хранимую процедуру MySQL.Как получить значение цикла в хранимой процедуре MySQL?

В Foxpro tRESCAS = 'tRESCAS' + tRESNUM дает tRESCAS1, tRESCAS2, .. и & tRESCAS дает значение, которое tRESCAS1 или tRESCAS1 или ... что-то еще.

Например

if I =1 => 

FOR I = 1 TO 10 
     tRESNUM = ALLTRIM(STR(1)) 
     tRESCAS = 'tRESCAS'+1  

     tRESCAS1 = 0.00   
ENDFOR 

If I =2 => 

FOR I = 1 TO 10 
     tRESNUM = ALLTRIM(STR(2)) 
     tRESCAS = 'tRESCAS'+2  

     tRESCAS2 = 0.00   
ENDFOR 

& tRESCAS Автоматически принимать значение tRESCAS tRESCAS1 или tRESCAS2 как это.

В хранимой процедуре Как я могу получить этот тип значения ?. (есть ли какая-либо специальная переменная в хранимой процедуре, например &?)

Достаточно ли данных?

ответ

3

Посмотрите на эту процедуру -

PROCEDURE procedure1() 
BEGIN 

    DECLARE tRESCAS VARCHAR(255) DEFAULT ''; 
    DECLARE i INT DEFAULT 0; 

    DROP TEMPORARY TABLE IF EXISTS t; 
    CREATE TEMPORARY TABLE t(num INT, column1 VARCHAR(255)); 

    WHILE i < 10 DO 
    INSERT INTO t VALUES(i, CONCAT('tRESCAS', i)); 
    SET i = i + 1; 
    END WHILE; 

    -- Try to get fifth value 
    SELECT column1 FROM t WHERE num = 5; 

END 

Все значения сохраняются во временную таблицу.

Выполните процедуру:

CALL procedure1; 
+----------+ 
| column1 | 
+----------+ 
| tRESCAS5 | 
+----------+ 

 Смежные вопросы

  • Нет связанных вопросов^_^