FOR I = 1 TO 10
tRESNUM = ALLTRIM(STR(I))
tRESCAS = 'tRESCAS'+tRESNUM
&tRESCAS = 0.00
ENDFOR
我正在将这个fox-pro代码转换为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。
在存储过程中如何获得此类值? (是存储过程中的任何特殊变量,例如& this?)
这个细节够了吗?。
答案 0 :(得分: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 |
+----------+