2015-06-06 5 views
0

Я попробовал этот запросЗапросы в Derby Embedded Database

String sql1="select * from custinf"; 
     try { 
      stmt=conn.createStatement(); 
      stmt.execute(sql1); 
      stmt.close(); 
     } catch (SQLException ex) { 
      Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
     } 

Он бросает

java.sql.SQLSyntaxErrorException: Table/View 'CUSTINF' does not exist. 
    at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source) 
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source) 
    at org.apache.derby.client.am.ClientStatement.execute(Unknown Source) 
    at com.atuts.cms.database.Database.addCustomer(Database.java:57) 
    at com.atuts.cms.database.Database.main(Database.java:31) 
Caused by: ERROR 42X05: Table/View 'CUSTINF' does not exist. 
    at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source) 
    at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source) 
    at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source) 
    at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source) 
    at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source) 
    at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source) 
    at org.apache.derby.client.am.ClientStatement.readPrepareDescribeOutput(Unknown Source) 
    at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source) 
    at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source) 
    ... 3 more 

Когда я изменить запрос String sql1="select * from \"custinf\""; Работает. Я не сталкивался с этой проблемой при использовании mysql db. может ли кто-нибудь объяснить это?

+0

* Существует ли таблица или просмотр 'CUSTINF'? –

+0

есть другой мудрый второй запрос не будет работать "select * from \" custinf \ "" – Burusothman

+0

См. Https://stackoverflow.com/questions/12203787/derby-database-table-column-name-format-inconsistent-in- запрос –

ответ

0

Названия таблиц Derby чувствительны к регистру. Это может быть «Custinf» или «custinf».

Вы можете отказаться от таблицы custinf и воссоздать с надлежащим корпусом.

1

Цитирую an answer to a different question:

select * from table3 

будет автоматически обрабатываться в базе данных, как если бы это был

select * from TABLE3 

в то время как

select * from "table3" 

будет успешно соответствовать таблицу, создано как create table "table3"

Так что, если ваша таблица была создана как custinf вы должны использовать "custinf". Используя custinfбез кавычек преобразует ваш запрос, чтобы использовать имя таблицы CUSTINF, которого, вероятно, не существует.

Смежные вопросы