PDA

View Full Version : سوال: Stored Procedure



ghravandi
شنبه 14 اردیبهشت 1392, 11:43 صبح
با سلام
من یک Stored Procedure ساختم که ورودی اون از نوع Varchar هستش. اما وقتی ورودی را میفرستم، ورودیم را قبول نمی کنه. نمونه کدهام اینه:
DELIMITER //
CREATE PROCEDURE showtable(IN tablename VARCHAR(255))
BEGIN
SELECT *
FROM tablename
;
END //


وقتی هم فراخوانی می کنم به اینصورت هستش:
Call showtable('user')

Unique
شنبه 14 اردیبهشت 1392, 14:48 عصر
یعنی چی قبول نمیکنه ؟
مطمئن هستین که procedure ساخته شده ؟
چه خطایی میده ؟‌ اگه مشکلی باشه توی Parameter ها یا کلا توی stored procedure باید خطا بده !

ghravandi
شنبه 14 اردیبهشت 1392, 16:01 عصر
یعنی چی قبول نمیکنه ؟
مطمئن هستین که procedure ساخته شده ؟
چه خطایی میده ؟‌ اگه مشکلی باشه توی Parameter ها یا کلا توی stored procedure باید خطا بده !

با یک مثال بهتر منظورمو میگم:
فرض کنید من این کد را اجرا میکنم:
Call showtable('user')

حالا به من یک پیغام خطا میده مبنی بر اینکه جدول tablename وجود نداره، درحقیقت نتونست user را به جای tablename در دستور جایگذاری کنه.

با تشکر

mahmod2000
شنبه 14 اردیبهشت 1392, 16:48 عصر
این کار رو انجام بدید

کد procedure :


CREATE PROCEDURE `sp_showtable_select` ( IN _selectTable CHAR( 50 ) )
BEGIN SET NAMES UTF8;

SET @seltable = CONCAT( 'SELECT * FROM ', _selectTable, ' ' ) ;

PREPARE excuttable FROM @seltable;
execute excuttable;
END$$


و خروجی هم این طور بگیرید واسه تست:


CALL `sp_showtable_select` ('users')

یادتون باشه دیتا در جدولتون وجود داشته باشه
موفق باشید