- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够连接到 IMS 段并使用 where 子句中的主键和 select * 查询执行 SQL 查询。但是每当我尝试对另一列进行选择时,我都会遇到词汇错误。
Select * from table where column-name='something'
这会给我异常'线程“main”com.ibm.ims.jdbc.TokenMgrError中的异常:第1行第42列的词法错误。遇到:“-”(45),之后:““'。如果我将列名作为名字,那么词法错误将发生在名字中连字符的位置。我尝试通过准备好的声明来做到这一点,但它仍然不起作用。
进行以下更改后,我仍然遇到异常。从表中选择 *,其中 'column-name'='something'原因:com.ibm.ims.jdbc.ParseException:在第 1 行第 36 列遇到“”\'column-name\'“”。期待其中之一: ... “(”...
从表中选择*,其中列+'-'+名称='某事''-' 词法错误异常
无效的转义序列(有效的是\b\t\n\f\r\"\'\),这是我在尝试添加反引号或一些转义序列时收到的消息。
最佳答案
在大多数 SQL 方言中,-
字符不是(无分隔)标识符中的合法字符。例如,SQL-92 spec说:
<identifier> ::=
[ <introducer><character set specification> ] <actual identifier>
<actual identifier> ::=
<regular identifier>
| <delimited identifier>
<SQL language identifier> ::=
<SQL language identifier start>
[ { <underscore> | <SQL language identifier part> }... ]
<SQL language identifier start> ::= <simple Latin letter>
<SQL language identifier part> ::=
<simple Latin letter>
| <digit>
(TL;DR - 字母、数字和下划线)
(我犹豫是否要说所有方言,因为 SQL 语言的寓言充满了与各种标准的偏差。)
<小时/>Does this apply to %,_ too, I can see some solutions which are allowing escape sequence with %,_. The solutions mentioned still don't work for hyphen. Reference: myitforum.com/cs2/blogs/jnelson/archive/2008/08/27/121684.aspx
首先,您找到的引用适用于字符串文字中的转义,而不是标识符名称中的转义。它不适用于这个问题。 (它适用于您的 SQL 方言吗?)
其次,根据上面的语法,如果您使用的 SQL 方言符合标准,则标识符中应该允许使用下划线。
第三,该标准讨论了“分隔标识符”(使用双引号字符作为分隔符)。我不知道这在真正的 SQL 方言中得到了多么广泛的支持,但我想即使是这样,您可以使用的字符也会受到限制......以及其他警告。
第四,无论 SQL 标准如何规定,您所使用的特定方言的文档语法才是您应该查看的内容。 (我只是用它来说明 SQL 的一般属性......在没有您实际使用的方言的任何细节的情况下。“大型机”SQL 可能有很多东西。)
最后,最好不要尝试在标识符中使用“时髦字符”。使用拉丁字母、数字和下划线……如果您的 SQL 方言甚至不允许这样做,那么就坚持使用它所允许的内容。
并阅读供应商 SQL 文档!!!
@Rob I've tried both and it did not work.
请仔细阅读供应商 SQL 文档。它应该告诉你什么会起作用。如果它说你不能这样做......好吧,你不能。
关于java - 通过jdbc访问主机时如何克服词法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10914552/
据我所知,Marketo 将 REST API 请求的数量限制为每天 10,000 次。有没有办法克服这个限制?我可以支付并获得更多吗? 我发现 REST API 请求和 SOAP API 请求是分开
有谁知道有什么方法可以克服 NotSupportedException?我有一个针对用户的方法: public virtual bool IsAbove(User otherUser) {
我们最近从关系型 (MySQL) 转向 NoSQL (couchbase)。基本上它是社交手机游戏的后端。我们在扩展后端以处理越来越多的用户时面临着很多问题。当使用 MySQL 时,由于多个表之间存在
我当前用来收集文本的函数 InputBox 显然不能接受超过 255 个字符,并且我需要能够收集更多字符?我可以使用参数或不同的函数来增加此限制吗? 最佳答案 说句迂腐的话,输入框允许您输入最多 25
我是近似字符串匹配领域的新手。 我正在探索 Bitap algorithm 的用途,但到目前为止,它有限的模式长度让我很困扰。我正在使用 Flash,处理 32 位无符号整数和一个 IEEE-754
克服 PHP 中的大海捞针困惑的最实用方法是什么? 这里 $needle 是第一个参数 bool in_array ( mixed $needle , array $haystack [, bool
我有一个无法更改的客户端类。 List list1= Arrays.asList(1,2,3); System.out.println("Total sum is:"+sum(list1)); pri
我们都知道,在 Java 中,如果在 Abstract 类中声明一个 static 方法,该方法将属于 Abstract 类,而不是它的 child 。 (没有抽象静态) 我有一个简单的数据库系统,它
我有 4 个表和这个查询 SELECT tag.id, title FROM tag LEFT JOIN tag_map ON ( tag.id = tag_map.tag_id ) LEFT JOI
我有 4 个表和这个查询 SELECT tag.id, title FROM tag LEFT JOIN tag_map ON ( tag.id = tag_map.tag_id ) LEFT JOI
在 Swift 中,一切都以结构而不是类的形式实现。正在传入值,但内存地址不存储它们。这是一个例子: import UIKit var array = Array() array = [6,2,9,1
在我编写的 C++ 程序中: #include #include using namespace std; int main() { vector a; a.resize(1); f
我正在尝试使用 php_ldap(使用 ADLdap)从 Ubuntu(hardy 8.04LTS)主机绑定(bind)到 AD。在端口 389 上绑定(bind)到 ldap://myserver
这个问题在这里已经有了答案: Low picture/image quality when capture from camera (3 个答案) 关闭 5 年前。 我想从相机拍照并上传到服务器,但
我想将 unsigned char[8] 分配给 uint64(c 语言),使用 RPC 传递此值,并将 uint64 转换回具有相同字节顺序的 unsigned char[8](cpp 语言)。问题
Python 似乎对实例方法有一些限制。 无法复制实例方法。 不能 pickle 实例方法。 这对我来说是有问题的,因为我的工作是非常面向对象的 project我在其中引用了实例方法,并且同时使用了深
我理解这个问题,根据答案 here ,但是,我真的可以使用帮助或更详细的代码解释来说明它是如何克服的。 我的情况是这样的:我曾经将模型和 Controller 分开,在我的模型包中我有一个包含所有模型
假设我从这样的 Akka Persistence 系统开始: case class MyMessage(x: Int) class MyProcessor extends Processor {
我正在寻找在构建重量级 Windows 界面时处理用户对象句柄限制的高级策略。请说明您如何使用 SWT 或直接 Windows GUI API 克服或绕过此问题。我唯一不感兴趣的是优化小部件使用的策略
我有一个我知道过去的日期列表,但格式为 28/MAY/13 .用它们制作日期类的最接近的方法是基本的 dates as.Date("2013-12-31")] as.Date("2013-12-3
我是一名优秀的程序员,十分优秀!