調用存儲過程調用在此異常的存儲過程的結果:異常而從JDBC
SQLException1 java.sql.SQLException中:用戶不具有訪問來確定存儲過程參數類型所需 元數據。如果不能授予 權限,請將配置爲 「noAccessToProcedureBodies = true」的連接使驅動程序生成代表INOUT字符串的參數 ,而不管實際參數類型如何。
要解決這個問題,我想:
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306
/database?useInformationSchema=true&noAccessToProcedureBodies=true",
"user_name", "pasword");
但它仍然無法正常工作。
我正在使用共享主機。
我使用
- 軟件版本:5.0.91社區日誌 - MySQL社區版(GPL)
- 協議版本:10
- 的Java 1.6
- 使用mysql-connector-java的-5.1.14-bin.jar
我的一個存儲過程是:
DROP PROCEDURE IF EXISTS `share_message`
DELIMITER //
CREATE PROCEDURE share_message(in messageid1 int(200),in received_by1 int(20),
in sent_by1 int(20),in shared_of1 int(20),author1 int(20), OUT query_status1 TINYINT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
-- ERROR
SET query_status1 = -1;
rollback;
END;
DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
-- WARNING
SET query_status1 = -1;
rollback;
END;
START TRANSACTION;
SET query_status1 = 0;
INSERT INTO post_message_users(messageid,received_by,sent_by,shared_of,author)
VALUES(messageid1,received_by1,sent_by1,shared_of1,author1);
UPDATE post_messages SET total_share=total_share+1 WHERE messageid=messageid1;
SET query_status1 =1;
COMMIT;
END//
DELIMITER ;
這與我的本地數據庫正常工作。
發佈存儲過程的文本? –