我有一个小傻问题.我已经安装了PostgreSQL数据库服务器,但是当我运行查询时,列标识符没有引号存在问题.我不知道为什么需要标识符周围的引号.我的查询:
SELECT vc."CAR_ID"
FROM "VEL_CAR" vc, "VEL_DRIVER" vd, "VEL_DRIVER_CAR" vdc
WHERE vc."CAR_ID" = vdc."CAR_ID" and
vdc."DRIVER_ID" = vd."DRIVER_ID";
Run Code Online (Sandbox Code Playgroud)
我在Oracle DB中的做法是不使用".所以在Oracle中:
SELECT vc.CAR_ID
FROM VEL_CAR vc, VEL_DRIVER vd, VEL_DRIVER_CAR vdc
WHERE vc.CAR_ID = vdc.CAR_ID and
vdc.DRIVER_ID = vd.DRIVER_ID;
Run Code Online (Sandbox Code Playgroud)
当我在PostgreSQL中没有引号运行此查询时,它会抛出有关语法的错误:
ERROR: column vc.car_id does not exist
LINE 1: SELECT vc.CAR_ID
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗?
--SOLVED-- 谢谢,现在我解决了这个问题!这是关于表创建.我使用pgAdminIII创建了表对象,并且我写了大写的表名和列名.pgAdminIII使用配额创建查询 - 因为名称是大写的.所以查询必须用配额写.
我安装了PostgreSQL 9数据库(从Oracle10g迁移),我对用户/角色管理感到困惑.当我使用CREATE USER
或者CREATE ROLE
或通过Navicat工具创建新用户时,创建的用户可以看到所有数据库!他真的可以联系他们!虽然他不能从表中选择任何数据,但他可以看到表对象和序列等.我试图撤销连接特权,但没有效果.我被期待新用户没有特权,也看不到任何东西.我真的不知道为什么他能.
我在JSF中的核心标记有问题.我使用此标签进行分页按钮渲染.有一个大问题 - 当有超过127页时.迭代值溢出.看起来迭代值是BYTE类型:-(.有一个代码:
<c:forEach begin="#{listActionBean.start}" step="#{listActionBean.step}" end="#{listActionBean.allCnt}" var="i">
<ice:outputText value="#{i}"/>
<ice:outputText value="|"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
listActionBean上的值是INT类型.我写的时候也一样:
<c:forEach begin="1" step="1" end="150" var="i">
<ice:outputText value="#{i}"/>
<ice:outputText value="|"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
输出是:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 …