本意是想传入表名tbl_name,通过参数row_count传出表记录行数。如下,报变量row_count未定义。mysql> delimiter //
mysql> create procedure p1_test(tbl_name varchar(32),out row_count int)
-> label_proc:
-> begin
-> declare v_sql varchar(200);
-> set v_sql=concat('select count(*) into row_count from ',tbl_name);
-> set @sql=v_sql;
-> prepare s1 from @sql;
-> execute s1;
-> deallocate prepare s1;
-> end label_proc //
Query OK, 0 rows affected (0.03 sec)
mysql> delimiter ;
mysql> set @num=0;
Query OK, 0 rows affected (0.00 sec)mysql> call p1_test('t',@num);
ERROR 1327 (42000): Undeclared variable: row_count
mysql>
mysql> create procedure p1_test(tbl_name varchar(32),out row_count int)
-> label_proc:
-> begin
-> declare v_sql varchar(200);
-> set v_sql=concat('select count(*) into row_count from ',tbl_name);
-> set @sql=v_sql;
-> prepare s1 from @sql;
-> execute s1;
-> deallocate prepare s1;
-> end label_proc //
Query OK, 0 rows affected (0.03 sec)
mysql> delimiter ;
mysql> set @num=0;
Query OK, 0 rows affected (0.00 sec)mysql> call p1_test('t',@num);
ERROR 1327 (42000): Undeclared variable: row_count
mysql>
SET row_coun=@row_coun;
mysql> create procedure p1_test(tbl_name varchar(32),out row_count int)
-> label_proc:
-> begin
-> declare v_sql varchar(200);
-> set v_sql=concat('select count(*) into @row_count from ',tbl_name);
-> set @sql=v_sql;
-> prepare s1 from @sql;
-> execute s1;
-> deallocate prepare s1;
-> end label_proc //