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

    &tRESCAS = 0.00 

ENDFOR  

私はこのfox-proコードをMySQLストアドプロシージャに変換しています。 FoxProのtRESCAS = 'tRESCAS' + tRESNUMでMySQLストアドプロシージャのループ値を取得する方法は?

は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 | 
+----------+ 
関連する問題