Pengecualian terbungkus:org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; tata bahasa SQL yang buruk

Saya memiliki DAO seperti ini,

public String getCaseTypeById(String caseIdNumber) {
        String caseType = null;

        SqlQuery caseQuery = 
            new PQuery(getDataSource());
        System.out.println("caseIdNumber   --"+caseIdNumber);
        caseType = (String)caseQuery.findObject(caseIdNumber);
        System.out.println("before return");

        return caseType;
    }

dan pQuery adalah,

public PlanQuery(DataSource dataSource)
{
    super();
    setDataSource(dataSource);
    BQueries bQueries = new BQueries();

    setSql(bQueries.getSelectStandardCaseTypeQuery());
    declareParameter(new SqlParameter("caseIdNumber",
            Types.NUMERIC));
    compile();
}

di mana getSelectStandardCaseTypeQuery berada,

public String getSelectStandardCaseTypeQuery() {

String selectCaseTypeByCaseId = null;

        selectCaseTypeByCaseId = 
            " SELECT ct.C_CODE as c_code " + 
            "  FROM  " + getSchemaName() + ".csummary cs, " + 
                getSchemaName() + ".ctype ct " +
            "   WHERE cs.c_number = ? " + 
            "   AND UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ";

    return selectCaseTypeByCaseId;
}

Sekarang pengembalian di atas berfungsi dengan baik. kontrol kembali ke DAO dan di DAO sysout dicetak tetapi setelah itu saya mendapatkan pengecualian sebagai,

[ PILIH ct.C_CODE sebagai c_type_code DARI gpt.csummary cs, gpt.ctype ct WHERE cs.c_number = ? DAN UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ]; pengecualian bersarang adalah java.sql.SQLException: ORA-00942: tabel atau tampilan tidak ada

at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

Pengecualian terbungkus: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; tata bahasa SQL yang buruk [ PILIH ct.C_CODE sebagai c_type_code FROM gpt.csummary cs, gpt.ctype ct WHERE cs.c_number = ? DAN UPPER(ct.C_DESC_TEXT) = UPPER(cs.C_TYPE) ]; pengecualian bersarang adalah java.sql.SQLException: ORA-00942: tabel atau tampilan tidak ada.

Tapi kemudian ketika saya menjalankan hal yang sama di katak semuanya berfungsi dengan baik. Saya melihat skema koneksi DB semuanya diarahkan dengan benar. Tapi kenapa gagal di finObject di DAO. ada masukan?


person JNPW    schedule 03.12.2012    source sumber
comment
Spring dan Struts bersama-sama (keduanya merupakan kerangka pengontrol) seperti yang ditunjukkan oleh tag?   -  person Lion    schedule 04.12.2012


Jawaban (1)


Sepertinya Anda harus menggunakan:

select * from schema.table_name 
person elopez    schedule 03.12.2012
comment
Seperti itulah tampilan sql saya skema.nama_tabel - person JNPW; 04.12.2012
comment
apakah pengguna jdbc Anda sama dengan yang Anda gunakan untuk menguji dari TOAD? - person elopez; 04.12.2012