first commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE PROCEDURE sysexec (
|
||||
IN p_token VARCHAR(100),
|
||||
IN p_sql TEXT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_userid VARCHAR(100);
|
||||
DECLARE v_exstr TEXT;
|
||||
|
||||
-- 根據傳入的 token 取得 userid
|
||||
SET v_userid = '';
|
||||
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token;
|
||||
|
||||
IF COALESCE(v_userid, '') = '' THEN
|
||||
SELECT 9 AS code, '請先登入系統再執行!!' AS msg;
|
||||
SELECT '';
|
||||
ELSEIF LOCATE('delete ', p_sql) > 0 OR LOCATE('drop ', p_sql) > 0 THEN
|
||||
SELECT 4 AS code, '內含不允許執行的 SQL 語法, 請重新輸入?!' AS msg;
|
||||
SELECT '';
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
SELECT 9 AS code, '語法有錯,請檢查語法後再重新執行!!' AS msg;
|
||||
SELECT '';
|
||||
END;
|
||||
|
||||
SELECT 0 AS code, '成功執行 SQL 語法' AS msg;
|
||||
SET @v_exstr = p_sql;
|
||||
PREPARE v_exstr FROM @v_exstr;
|
||||
EXECUTE v_exstr;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user