缺失select关键字!!在线等挺急。。

import java.sql.*;

public class TestProc {

public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
     Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott","tiger");
     CallableStatement cstmt = conn.prepareCall("(call p(?, ?, ? ,?))");
     cstmt.registerOutParameter(3, Types.INTEGER);
     cstmt.registerOutParameter(4, Types.INTEGER);
     cstmt.setInt(1, 3);
     cstmt.setInt(2, 4);
     cstmt.setInt(4, 5);
     cstmt.execute();
     System.out.println(cstmt.getInt(3));
     System.out.println(cstmt.getInt(4));
     cstmt.close();
     conn.close();


}

}

Exception in thread "main" java.sql.SQLException: ORA-00928: 缺失 SELECT 关键字

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:202)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1005)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4693)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1086)
at TestProc.main(TestProc.java:17)

http://www.linuxidc.com/Linux/2011-06/36749.htm

把存储过程贴出来看看呗