我将SQuirrel SQL Client版本3.5.3和HSQLDB用于我的数据库。我已经能够为它指定相应的驱动程序(内存中)并创建一个别名。
我创建了一个表
CREATE TABLE ENTRY(
NAME VARCHAR(100) NOT NULL,
DESC VARCHAR(500) NOT NULL,
PRIMARY KEY (NAME))
并在其中添加了几行数据。虽然这些陈述有效:
select * from ENTRY
select NAME from ENTRY
select DESC from ENTRY
我总是Error: user lacks privilege or object not found"
在我的声明中添加where
子句时,例如select DESC from ENTRY where NAME=CAR
任何帮助都非常感激,因为我可以慢慢感觉到我的理智正在减弱
答案 0 :(得分:2)
我遇到了同样的问题,但我的表名和其他内容都没问题,除了我对VARCHAR的查询都在双引号内("")但它应该是单引号(&# 39;')
现在这个查询错了:
SELECT * FROM flights WHERE flightId="0f3ae9b3-6bb1-4c95-9394-6179555f5879"
虽然这个没问题:
SELECT * FROM flights WHERE flightId='0f3ae9b3-6bb1-4c95-9394-6179555f5879'
答案 1 :(得分:1)
我终于能够自己解决这个问题了。我为select语句使用了一个错误的表名,并在将其更改为真正有效的语句之后。唯一令我困惑的是我也为插入语句使用了错误的表名,但它们已成功执行,所有数据都显示在其中。
答案 2 :(得分:1)
HSQLDB具有名为PUBLIC的默认架构。所有SQL查询都将指向PUBLIC;如果您已创建自己的架构,例如: OWNSCHEMA ,则编辑xxx.script并更改以下行
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
到
SET DATABASE DEFAULT INITIAL SCHEMA OWNSCHEMA
答案 3 :(得分:0)
当我收到相同的异常时,根本原因是我在SELECT子句中有一个FROM子句中没有的表。
答案 4 :(得分:0)
您的问题是:
<块引用>我总是收到错误:用户缺少权限或找不到对象”时 在我的语句中添加一个 where 子句,例如从条目中选择 DESC 其中 NAME=CAR
是的,你当然知道。 NAME 是 ENTRY 表的一个字段。汽车不是任何领域。 也许你的 WHERE 子句应该看起来像这样:
WHERE NAME='CAR'
从而将字段值与文字字符串值进行比较,而不是尝试将其与不存在的其他字段值进行比较。