DB2 特殊符号 问题

bluelogo 2010-08-19 06:31:52
我遇到个DB2的问题想请教一下。

我现在生成了一个带特殊符号的表名如:SV_abc-survey 但我select的时候 就会报错。

http://111.111.111/abc.jsp?id=SV_abc-survey 在这儿就会报错

Error 500: java.sql.SQLException: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/6000] SQL0104N An unexpected token "-" was found following

告诉我个解决方法啊 谢谢了
...全文
842 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxiao_jiang 2010-08-20
  • 打赏
  • 举报
回复
select * from SV_abc-survey

select * from SV_abc‐SURVEY
这两个不一样,下面的那个-是全角的。

把表名替换下,就不会有错误了。
bluelogo 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yangxiao_jiang 的回复:]

你经过url转化,得到table的名字在select的?

你在jsp里把组合成的sql打印一下,或者把得到的表名打印一下,看看是否有问题。

你的表名不算带特殊字符。
[/Quote]

重新确认了一下

select * from SV_abc-survey

select * from SV_abc‐SURVEY

这俩 看上去表名是一样的 但生成的表 是下面的 经过url转化有了变化啊。
用第二个就不会出错。

http://111.111.111/abc.jsp?id=SV_abc-survey 这时用的是第一个 ,我想知道怎样才能让他不出错呢?

yangxiao_jiang 2010-08-20
  • 打赏
  • 举报
回复
你经过url转化,得到table的名字在select的?

你在jsp里把组合成的sql打印一下,或者把得到的表名打印一下,看看是否有问题。

你的表名不算带特殊字符。
minitoy 2010-08-20
  • 打赏
  • 举报
回复
SQL> CREATE TABLE "SV_abc-survey"
2 (
3 a NUMBER(20));

Table created

SQL> select * from "SV_abc-survey";

A
---------------------

SQL>
bluelogo 2010-08-20
  • 打赏
  • 举报
回复
单引 双引 都加过 都不可以.....
yangxiao_jiang 2010-08-20
  • 打赏
  • 举报
回复
url的话,会进行编码的,你的项目是gb2312的吧。

html_db.replaceAll("‐","­-");这样是能转,不过最好是能在request.getP...得到这个地方进行编码转。
bluelogo 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yangxiao_jiang 的回复:]

select * from SV_abc-survey

select * from SV_abc‐SURVEY
这两个不一样,下面的那个-是全角的。

把表名替换下,就不会有错误了。
[/Quote]
我是通过 jsp 文件 生成的DB 如下:
html_db=“CREATE TABLE SV_abc-survey”
sq.createDB(html_db)

结果生成的db名怎么会是SV_abc‐SURVEY 这个呢? 怎样才能实现生成的是SV_abc-survey 这个

html_db = html_db.replaceAll("-","­");难道这样会有用?
shijubo 2010-08-19
  • 打赏
  • 举报
回复
表名上面加引号行吗?

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧