ข้อยกเว้นแบบรวม:org.springframework.jdbc.BadSqlGrammarException: PreparationStatementCallback; ไวยากรณ์ SQL ที่ไม่ดี

ฉันมี DAO เช่นนี้

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;
    }

และ pQuery คือ

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

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

โดยที่ getSelectStandardCaseTypeQuery อยู่

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;
}

ตอนนี้ผลตอบแทนข้างต้นทำงานได้ดี การควบคุมกลับไปที่ DAO และใน DAO ระบบจะพิมพ์ sysout แต่หลังจากนั้นฉันได้รับข้อยกเว้นเป็น

[ เลือก ct.C_CODE เป็น c_type_code จาก gpt.csummary cs, gpt.ctype ct โดยที่ cs.c_number = ? และบน(ct.C_DESC_TEXT) = บน(cs.C_TYPE) ]; ข้อยกเว้นแบบซ้อนคือ java.sql.SQLException: ORA-00942: ไม่มีตารางหรือมุมมอง

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)

ข้อยกเว้นแบบรวม: org.springframework.jdbc.BadSqlGrammarException: PreparationStatementCallback; ไวยากรณ์ SQL ไม่ถูกต้อง [ SELECT ct.C_CODE as c_type_code FROM gpt.csummary cs, gpt.ctype ct WHERE cs.c_number = ? และบน(ct.C_DESC_TEXT) = บน(cs.C_TYPE) ]; ข้อยกเว้นแบบซ้อนคือ java.sql.SQLException: ORA-00942: ไม่มีตารางหรือมุมมอง

แต่เมื่อฉันดำเนินการแบบเดียวกันกับคางคกทุกอย่างก็ใช้ได้ดี ฉันเห็นว่าสคีมาการเชื่อมต่อ DB ทุกอย่างถูกต้อง แต่ทำไมมันถึงล้มเหลวใน finObject ใน DAO มีอินพุตอะไรบ้าง?


person JNPW    schedule 03.12.2012    source แหล่งที่มา
comment
Spring และ Struts รวมกัน (ทั้งคู่เป็นเฟรมเวิร์กคอนโทรลเลอร์) ตามที่ระบุด้วยแท็ก   -  person Lion    schedule 04.12.2012


คำตอบ (1)


ดูเหมือนว่าคุณจะต้องใช้:

select * from schema.table_name 
person elopez    schedule 03.12.2012
comment
นั่นคือลักษณะที่ sql ของฉันดูเหมือน schema.table_name - person JNPW; 04.12.2012
comment
ผู้ใช้ jdbc ของคุณเป็นคนเดียวกับที่คุณใช้ทดสอบจาก TOAD หรือไม่ - person elopez; 04.12.2012