2017-03-01 40 views
0

我遇到了麻煩,試圖從Spring數據存儲庫調用存儲過程。在春天的數據文檔和幾個答案這裏,所以這似乎是正確的做法,但我一直有這個錯誤:使用Spring Data正確調用存儲過程JPA

PLS-00306: wrong number or types of arguments in call to 'GET_DESCR_BDD_BDS' 

這是存儲過程簽名

​​

這就是我如何已經實現了電話(我可能在不同的嘗試搞砸了一點東西,使事情工作)
型號

@NamedStoredProcedureQuery(name = "DescrBddBds.descr", 
    procedureName = "PRK_BDD.GET_DESCR_BDD_BDS", 
    parameters = { 
     @StoredProcedureParameter(mode = ParameterMode.IN, name = "PRGPVV", type = Integer.class), 
     @StoredProcedureParameter(mode = ParameterMode.IN, name = "COD_SEZ", type = Integer.class), 
     @StoredProcedureParameter(mode = ParameterMode.IN, name = "FL_BDD_BDS", type = Integer.class) 
     , 
     @StoredProcedureParameter(mode = ParameterMode.OUT, name = "prg_doc", type = String.class), 
     @StoredProcedureParameter(mode = ParameterMode.OUT, name = "repo_pos", type = Integer.class) 
    }, 
    resultClasses = DescrBddBds.class 
) 
@Entity 
public class DescrBddBds implements Serializable { 
    /** 
    * 
    */ 
    private static final long serialVersionUID = -2182033603838684233L; 
    @Id 
    @Column(name = "prg_doc") 
    private String prgDoc; 
    @Column(name = "repo_pos") 
    private Integer repoPos; 

    public String getPrgDoc() { 
     return prgDoc; 
    } 
    public void setPrgDoc(String prgDoc) { 
     this.prgDoc = prgDoc; 
    } 
    public Integer getRepoPos() { 
     return repoPos; 
    } 
    public void setPepoPos(Integer repoPos) { 
     this.repoPos = repoPos; 
    } 

} 

@Repository 
public interface HtmlProceduresRepo extends CrudRepository<DescrBddBds, String> { 

    @Procedure(name = "descr", procedureName="PRK_BDD.GET_DESCR_BDD_BDS") 
    DescrBddBds descr(@Param("PRGPVV") Integer codiceDoc, @Param("COD_SEZ") Integer sezione, @Param("FL_BDD_BDS") Integer flagBddBds); 
} 

調用從SQL Developer中的程序與我把它從應用程序相同的用戶工作得很好

var b number; 
var d number; 
var e number; 
exec :b:= 1; 
exec :d:= 2; 
exec :e:= 3; 
execute PRK_BDD.GET_DESCR_BDD_BDS(:b, :d, :e, :out_param1, :out_param2); 
print out_param1; 
print out_param2; 
+0

可以檢查是否有不似乎對任何進展訪問與您在數據庫中使用的用戶一起運行此存儲過程。 –

+0

是的,我確實有訪問權限,我已經檢查了這個 – valepu

+0

可執行的訪問權限?我多次面對這個問題,這只是因爲我正在使用當前用戶的訪問權限。 –

回答

相關問題