Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储过程的Spring执行_Java_Spring_Oracle - Fatal编程技术网

Java 存储过程的Spring执行

Java 存储过程的Spring执行,java,spring,oracle,Java,Spring,Oracle,使用Spring framework调用存储过程时出现以下错误:, 我做错了什么 春季:3.2 甲骨文:11g 这是我的包裹体: create or replace PACKAGE BODY DEVICE_CHANGE_EVENT_PK AS PROCEDURE deletemsisdn(p_msisdn IN NUMBER, response OUT NUMBER) IS err_number number; BEGIN response := 1;

使用Spring framework调用存储过程时出现以下错误:, 我做错了什么

春季:3.2 甲骨文:11g

这是我的包裹体:

create or replace 
PACKAGE BODY DEVICE_CHANGE_EVENT_PK AS

 PROCEDURE deletemsisdn(p_msisdn IN NUMBER, response OUT NUMBER)
  IS
     err_number  number;

  BEGIN
     response := 1;
  END;


 PROCEDURE deletemsisdn
  IS
     err_number  number;

  BEGIN
     err_number := 1;
  END;


END DEVICE_CHANGE_EVENT_PK;
Spring Stored过程类别:

package com.mkyong.component.dao;

import java.sql.Types;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;


public class DeleteMsisdnSPImplPure extends StoredProcedure implements DeleteMsisdnSP{

    public static String P_MSISDN="p_msisdn";
    public static String RESPONSE="response";

    public DeleteMsisdnSPImplPure(DataSource dataSource ){      
        super(dataSource,"AHMETK.DEVICE_CHANGE_EVENT_PK.DELETEMSISDN");     
    }

    @Override
    public Object execute(long msisdn){
        super.execute();
        return "OK";
    }

}
我有错误。

Feb 13, 2014 11:59:34 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
Feb 13, 2014 11:59:34 AM org.springframework.jdbc.support.SQLErrorCodesFactory <init>
INFO: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call AHMETK.DEVICE_CHANGE_EVENT_PK.DELETEMSISDN()}]; SQL state [72000]; error code [4063]; ORA-04063: package body "AHMETK.DEVICE_CHANGE_EVENT_PK" has errors
ORA-06508: PL/SQL: could not find program unit being called: "AHMETK.DEVICE_CHANGE_EVENT_PK"
ORA-06512: at line 1
; nested exception is java.sql.SQLException: ORA-04063: package body "AHMETK.DEVICE_CHANGE_EVENT_PK" has errors
ORA-06508: PL/SQL: could not find program unit being called: "AHMETK.DEVICE_CHANGE_EVENT_PK"
ORA-06512: at line 1

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1036)
    at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1070)
    at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:125)
    at com.mkyong.component.dao.DeleteMsisdnSPImplPure.execute(DeleteMsisdnSPImplPure.java:24)
    at com.mkyong.component.dao.AdcDaoImplExtended.deleteMisdnViaStoredProcedure(AdcDaoImplExtended.java:35)
    at com.mkyong.component.services.MyService.deleteMisdnViaStoredProcedure(MyService.java:104)
    at com.mkyong.component.services.MyService$$FastClassByCGLIB$$1e2fd8be.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)
    at com.mkyong.component.services.MyService$$EnhancerByCGLIB$$fa861a3e.deleteMisdnViaStoredProcedure(<generated>)
    at com.mkyong.common.App.<init>(App.java:50)
    at com.mkyong.common.App.main(App.java:58)
Caused by: java.sql.SQLException: ORA-04063: package body "AHMETK.DEVICE_CHANGE_EVENT_PK" has errors
ORA-06508: PL/SQL: could not find program unit being called: "AHMETK.DEVICE_CHANGE_EVENT_PK"
ORA-06512: at line 1

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1041)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4714)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376)
    at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1072)
    at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1070)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1020)
    ... 15 more
2014年2月13日上午11:59:34 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息:从类路径资源[org/springframework/jdbc/support/sqlerrorcodes.XML]加载XMLbean定义
2014年2月13日上午11:59:34 org.springframework.jdbc.support.SQLErrorCodesFactory
信息:加载的SQLErrorCodes:[DB2、Derby、H2、HSQL、Informix、MS-SQL、MySQL、Oracle、PostgreSQL、Sybase]
线程“main”org.springframework.jdbc.UncategorizedSQLException中的异常:CallableStatementCallback;SQL[{call AHMETK.DEVICE_CHANGE_EVENT_PK.DELETEMSISDN()}]的未分类SQLException;SQL状态[72000];错误代码[4063];ORA-04063:包体“AHMETK.DEVICE_CHANGE_EVENT_PK”有错误
ORA-06508:PL/SQL:找不到正在调用的程序单元:“AHMETK.DEVICE\u CHANGE\u EVENT\u PK”
ORA-06512:在第1行
; 嵌套异常为java.sql.SQLException:ORA-04063:包体“AHMETK.DEVICE\u CHANGE\u EVENT\u PK”有错误
ORA-06508:PL/SQL:找不到正在调用的程序单元:“AHMETK.DEVICE\u CHANGE\u EVENT\u PK”
ORA-06512:在第1行
位于org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
位于org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
位于org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
位于org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1036)
位于org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1070)
位于org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:125)
在com.mkyong.component.dao.DeleteMsisdnSPImplPure.execute(DeleteMsisdnSPImplPure.java:24)上
在com.mkyong.component.dao.AdcDaoImplExtended.deleteMisdnViaStoredProcedure上(AdcDaoImplExtended.java:35)
在com.mkyong.component.services.MyService.DeleteMisDnViastoredProcess(MyService.java:104)上
在com.mkyong.component.services.MyService$$FastClassByCGLIB$$1e2fd8be.invoke()上
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150)上
位于org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)
在com.mkyong.component.services.MyService$$enhancerbyglib$$fa861a3e.deleteMisdnViaStoredProcedure()上
在com.mkyong.common.App。(App.java:50)
位于com.mkyong.common.App.main(App.java:58)
原因:java.sql.SQLException:ORA-04063:包体“AHMETK.DEVICE\u CHANGE\u EVENT\u PK”有错误
ORA-06508:PL/SQL:找不到正在调用的程序单元:“AHMETK.DEVICE\u CHANGE\u EVENT\u PK”
ORA-06512:在第1行
位于oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:445)
位于oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:396)
位于oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
位于oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
位于oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
位于oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
位于oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)
位于oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1041)
在oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)中
位于oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
在oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)
在oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4714)中
位于oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376)
位于org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1072)
位于org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1070)
位于org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1020)
... 还有15个

尝试从所有错误中选择*以查看您的包是否存在编译错误/警告。我检查了配置,发现我使用的数据库服务器错误,并且没有相关的包。@mmc18-为了将来的搜索者的利益,您应该发表评论作为回答。有答案的问题比没有答案的问题更明显。