Boa Tarde
Estou a utilizar Web Services com GlassFish a aceder ao Oracle.
No meu codigo estou invocando Stored’s da BD, mas obtendo um erro que nao sei como resolver:
Meu Codigo:
@WebMethod(operationName = "teste1")
public String teste1()
{
try {
InitialContext initContext = new InitialContext();
//Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)initContext.lookup("teste4");
Connection conn = ds.getConnection();
CallableStatement proc = conn.prepareCall("{call xavy.inscustomer(?,?,?)}");
proc.setInt(1, 50);
proc.setString(2, "xavier");
proc.registerOutParameter(3,OracleTypes.VARCHAR);
proc.execute();
return "sucesso";
}catch (NamingException e)
{
System.err.println("Unable to load the driver class, check your classpath.");
e.printStackTrace();
} catch (SQLException e)
{
//Database problem.
System.err.println("Database problem.");
e.printStackTrace();
//conn = ds.getConnection();
}
return "insucesso";
}
Stored:
PROCEDURE XAVY."inscustomer" (i NUMBER, a VARCHAR2, b OUT VARCHAR2) AS
BEGIN
INSERT INTO xavy."CUSTOMER" VALUES(i,a);
b := 'Sucesso';
END;
O erro que obtenho é:
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'XAVY.INSCUSTOMER' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Já dei permissoes na BD, mas mesmo assim da esse erro.
Será que alguem me pode ajudar?
Nota: Nao olhem à desarrumaçao do Codigo, eu sei que a conexao nao deveria estar ai, mas isto e so pra testar.
Obrigado