【发布时间】:2011-09-30 09:17:56
【问题描述】:
我写了一个存储过程。除了将表名作为输入参数外,它工作正常。
让我们在 MySQL 中查看我的 proc:
DELIMITER $$
USE `db_test`$$
DROP PROCEDURE IF EXISTS test_proc$$
CREATE DEFINER=`root`@`localhost`
PROCEDURE `test_proc`(IN serviceName VARCHAR(10),IN newsInfoTable VARCHAR(100))
BEGIN
SELECT COUNT(*) FROM newsInfoTable WHERE newsServiceName=serviceName;
END$$
DELIMITER ;
存储过程调用参数:
USE db_test;
CALL test_proc('abc','tbl_test_news');
这里的服务名称参数工作正常。但如果我将 newsInfoTable 变量作为表输入参数包含在内,则会显示错误。
表“db_test.newsinfotable”不存在
为什么这只发生在表参数上?我怎样才能从这个错误中检索或
如何将表名作为参数传递给存储过程?
【问题讨论】: