0

国と部門など、さまざまなテーブルを更新するための単一の手順を作成しました。手順では、テーブル名の入力パラメーターと他のパラメーターについて言及しました。しかし、残念ながらエラーが発生しました。これが mySql プロシージャです。

CREATE DEFINER=`satish`@`%` PROCEDURE `p_update_Master_Name`(
IN tbl_Name VARCHAR(35),
IN tbl_column_old_value VARCHAR(35),
IN tbl_column_new_value VARCHAR(35),
IN tbl_user_id INT,
OUT msg INT 
)
BEGIN
IF EXISTS (SELECT Name from tbl_name where Name = tbl_column_new_value) then        
SET msg := '1';
-- failed case  

else

UPDATE tbl_name SET Name= tbl_column_value, Modified_Date=now(),       Modified_by=tbl_user_id where Name = tbl_column_old_value;
set msg := '0';
-- success 
END IF;
END

私はJavaファイルからこの手順を呼び出しています。

CallableStatement cs = conn.prepareCall("{ call p_update_Master_Name(?,?,?,?,?)}");
            cs.setString(1, "country");
    cs.setString(2, real);
    cs.setString(3, mod);   
    cs.setInt(4, 01);
    cs.execute();
            cs.registerOutParameter(5, Types.INTEGER);
            int i=cs.getInt(5);

しかし、それは私に mysql.jdbc 例外を与えます。

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'sims.tbl_name' doesn't 
exist

私を助けてください。事前にサンクス

4

2 に答える 2

0

プロシージャの構文にエラーがあるようです

間違ったもの: 1. SELECT Name from *tbl_name* where Name = tbl_column_new_value) then
SET msg := '1'

上記のコード行では、tal_name に値を設定していません。

クエリの INTO に集中する以下の構文を参照できます。 ) は始まっています

SELECT USERNAME , CREATED_BY, CREATED_DATE INTO o_username, o_createdby, o_date FROM DBUSER WHERE USER_ID = p_userid;

終わり;

于 2013-06-18T05:23:59.940 に答える