我正在将(或尝试)Ms AccessDB转换为德比。
当我从访问中提取某些varchar / text / memo字段中的数据时,它们会填充撇号,数学符号(百分比,小于等)和可能的外来字符
我需要保留这些并且我测试它们,以便我可以使用'转义序列'来确保它们被放入数据库。
但是现在我无法在没有这些字段失败的情况下将数据导入数据库。当SQL失败时,我输出SQL字符串,并将其剪切并传递给ij。然后我修改了第一条记录,这些字符总是让我感到悲伤。
我试图用“双引号”来修改字符串,但这只是给出了一个不同的错误(声明它在'line1列x'处有'enounterd'“”,它始终是双引号的第一个出现引号)。
我还没有在derby中找到一个设置来改变字符串的行为。有吗?
我还尝试将SQL语句设置为preparedStatement然后再次使用{call preparedStatement},这也失败了。我不能在正常的语句中使用{escape“escape char},因为derby只是说错误的语法。
其他人如何设法将带有奇怪字符的用户内容放入德比中的字段中? 我是否需要将我的字段更改为CLOB或varchar / long Varchar以外的其他字段? 我的问题是由于使用错误的字符集(例如iso而非UTF-8)引起的,我该如何判断它是什么,如何更改?
下面是我将它发送到derby时失败的SQL插件示例(通过我的JAVA'程序')
插入S1.SORTIEDESSAI(OBS,DATEDUSORTIE,CONTREINDIC,FIN, PDEVU,REFUS,INVDECISN,ADMIN,MOTIF_DE_LA_SORTIE,NOMVALIDEE, DATEVALIDEE)值('“0001/0001”','2007-07-15',false,true, '“null”','“null”','“null”','“null”','“2。FIN DE L'ESSAI”', '“DR SIMON”','2011-04-19')
注意: 其实我看上面并注意到列名的顺序不好?昨天没事,不知道为什么会改变?与Access有关的事情从resultSetMetaData以随机顺序返回列名,这将是一个惊喜。
现在我推荐任何进一步的答案推迟,而我解决了这个问题,好的解决了这个问题,我是否需要设置另一个关于这种行为的问题.... 回到主线......
好的,因为你可以在我的SQL语句中看到我用双引号包装了任何varchar字段。这总是失败(甚至直接通过ij)。帮助帮助...
答案 0 :(得分:0)
我不太确定你的问题是什么,但一般来说你可以通过使用表格的PreparedStatement输入这些字符:INSERT INTO tablename(columnname)values(?),然后使用PreparedStatement.setString()为该列提供字符数据的方法。