首页 文章

来自java的hsqldb调用过程

提问于
浏览
-1

我在hsqldb中创建了这个过程

create procedure insertarUsuario
(nombre varchar(50), apellidos varchar(50), usuariowin varchar(10),xlnet varchar(10), correo varchar(150), planta integer, telefono integer)
MODIFIES SQL DATA
BEGIN ATOMIC
INSERT INTO USUARIOS VALUES(nombre, apellidos, usuariowin, xlnet,correo,planta,telefono);
end;

从java我称之为程序

public static void main(String [] args)抛出SQLException {ConexionBBDD con = new ConexionBBDD();

String sql = "{call public.insertarUsuario(?,?,?,?,?,?,?)}";

    CallableStatement cs = con.getConnection().prepareCall(sql);

        cs.setString(1, "esto");
        cs.setString(2, "es");
        cs.setString(3, "una");
        cs.setString(4, "prueba");
        cs.setString(5, "insercion");
        cs.setInt(6, 1);
        cs.setInt(7, 2);

        cs.execute();
        cs.close();

        con.desconexionBBDD();  
}

但是不要工作 .

`Exception in thread "main" java.sql.SQLSyntaxErrorException: user does not have sufficient privileges or object not found: INSERTARUSUARIO
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCCallableStatement.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.prepareCall(Unknown Source)
    at ventanas.pruebaConexion.main(pruebaConexion.java:28)
Caused by: org.hsqldb.HsqlException: usuario no tiene privilegios suficientes o objeto no encontrado: INSERTARUSUARIO
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.ParserDQL.readColumnOrFunctionExpression(Unknown Source)
    at org.hsqldb.ParserDQL.XreadSimpleValueExpressionPrimary(Unknown Source)
    at org.hsqldb.ParserDQL.XreadAllTypesValueExpressionPrimary(Unknown Source)
    at org.hsqldb.ParserDQL.XreadAllTypesPrimary(Unknown Source)
    at org.hsqldb.ParserDQL.XreadAllTypesFactor(Unknown Source)
    at org.hsqldb.ParserDQL.XreadAllTypesTerm(Unknown Source)
    at org.hsqldb.ParserDQL.XreadAllTypesCommonValueExpression(Unknown Source)
    at org.hsqldb.ParserDQL.XreadValueExpression(Unknown Source)
    at org.hsqldb.ParserDML.compileCallStatement(Unknown Source)
    at org.hsqldb.ParserCommand.compilePart(Unknown Source)
    at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
    at org.hsqldb.Session.compileStatement(Unknown Source)
    at org.hsqldb.StatementManager.compile(Unknown Source)
    at org.hsqldb.Session.execute(Unknown Source)
    ... 4 more`

请帮我 .

1 回答

  • 0

    错误消息表示数据库用户没有调用该过程的权限 . 如果PUBLIC用户正在调用该过程,则此语句将授予该特权 . 对于其他用户,请使用用户名替换PUBLIC .

    GRANT ALL ON insertarUsuario TO PUBLIC
    

    当GRANT因“用户缺少权限或未找到对象”而失败时,它表示正在使用到不同数据库的路径 .

相关问题