2016-04-11 33 views
1

elsesアプリケーションでインシデントを解決するように割り当てられました。ストアドプロシージャiBATISのコールからの例外

しかし、アプリケーションはiBATISでsqlMapとStoredプロシージャを使用しています。

これは私がこれまで持っているものです:xmlファイル内

public void createItemInDb() { 

    try { 
     System.out.println("status: " + this.getStatus()); 
     System.out.println("weight: " + this.getWeight()); 
     System.out.println("node name: " + this.getNodeName()); 
     System.out.println("node ui: " + this.getNodeUi()); 

     SqlMapClient sqlMap = AppSqlMapClient.getSqlMapInstance(); 
     sqlMap.queryForObject("createItem", this); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

// SQLMAP

<parameterMap class="item" id="createItemMap"> 
    <parameter property="nodeName" jdbcType="VARCHAR" mode="IN" /> 
    <parameter property="status" jdbcType="INTEGER" mode="IN" /> 
    <parameter property="weight" jdbcType="INTEGER" mode="IN" /> 
    <parameter property="nodeUi" jdbcType="INTEGER" mode="INOUT" /> 

</parameterMap> 

<procedure id="createItem" parameterMap="createItemMap"> 
    {call CREATEITEM (?,?,?,?)} 
</procedure> 

私はこの例外を持っています:

--- The error occurred while executing query procedure. 
--- Check the {call CREATEITEM (?,?,?,?)}. 
--- Check the SQL Statement (preparation failed). 
--- Cause: java.sql.SQLException: [SQL0204] CREATEITEM in *N type *N not found. 
Caused by: java.sql.SQLException: [SQL0204] CREATEITEM in *N type *N not found. 
     at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185) 
     at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104) 
     at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:565) 
     at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:540) 
     at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106) 
     at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:84) 

私も理解していませんこの部分の意味:

* NタイプのCREATEITEM * Nが見つかりません。

* Nは何を表しますか?

どこでストアドプロシージャを見つけることができますか? CREATEITEMはどこのアプリケーションファイルにも見つかりませんか?

のthnx

答えて

0

ストアドプロシージャは、データベースにある、データベース・クライアントとデータベースに接続し、ストアドプロシージャのコードをチェックする必要が(多分それは、PL/SQLコードです)。

エラー "CREATEITEM in * N type * N not found。"エラーストアドプロシージャの戻り値の型によって発生した可能性があります。それが整数だと確信していますか?

+0

ありがとうございました。 IT部門の誰かが私たちのストアドプロシージャをすべて消去していました。これが例外の原因で、なぜ私はそれをどこでも見つけることができませんでした。幸いにも私たちは最近のバックアップを持っており、それはすべて解決されました。 –

+0

良い!問題が解決しました! ;) – TeoVr81

関連する問題