当我将冷漠服务器数据库转换为德比数据库时,如何解决这些问题
Posted
技术标签:
【中文标题】当我将冷漠服务器数据库转换为德比数据库时,如何解决这些问题【英文标题】:how can solve these trouble when i convert form apathy server DB to derby DB 【发布时间】:2017-05-15 19:17:03 【问题描述】:因为我将我的 concoction DB 转换为 netbeans 中的 derby 所有语句都发生错误。
错了
java.sql.SQLSyntaxErrorException: table or view does not exist.
解决问题必须改变所有属性和表名 by 把它放在括号中
例如
st.executeQuery("SELECT * FROM loges ");
不运行它的语法错误 必须改为
st.executeQuery("SELECT * FROM \"loges\" ");
然后它可以正常工作 这样做很辛苦,我有 137 条查询语句包含很多 表和属性名称。
我正在做此更改,因为将我的项目解压缩到可执行的桌面程序 如果能以其他方式做到这一点会很好
【问题讨论】:
您应该决定您正在使用哪个 DBMS 并适当地标记它们,而不是标记所有它们。 Problems with escaping table and field names in Derby and Hsqldb的可能重复 您应该创建不带双引号的表格,如重复问题中所述。 【参考方案1】:如果您的代码使用所有不带引号的表和列名,那么您的数据库架构应该使用不带引号的名称创建。
如果您现在遇到问题,那么您的新数据库是使用带引号的名称创建/迁移的。修复它,您的代码将保持不变。
请注意,数据库对未加引号的名称的处理方式不同,例如Oracle 会将名称更改为大写,PostgreSQL 会将名称更改为小写,MS SQL Server 将存储给定的名称,但默认情况下不区分大小写。
【讨论】:
【参考方案2】:您应该创建不带双引号的表格,如重复问题中所述
【讨论】:
以上是关于当我将冷漠服务器数据库转换为德比数据库时,如何解决这些问题的主要内容,如果未能解决你的问题,请参考以下文章