17,140
社区成员




DELIMITER $$
CREATE DEFINER=`wangcheng`@`localhost` PROCEDURE `getAddress`(in n varchar(20),out ret_addr varchar(30))
BEGIN
declare addr varchar(30);
select
address
into addr from
custom
where
custom.name = n;
set ret_addr=addr;
END
CallableStatement cstat = conn.prepareCall(sql);
cstat.registerOutParameter(2,Types.VARCHAR);
cstat.setString(1,"test");
cstat.execute();
System.out.println(cstat.getString(2));
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: execute command denied to user 'root'@'localhost' for routine 'test.getAddress'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
at com.mysql.jdbc.Util.getInstance(Util.java:360)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1199)
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:870)
at com.jackwang.utils.ProcedureTest.main(ProcedureTest.java:23)