加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长百科 > 正文

oracle – PostgreSQL – 没有引号的查询语法

发布时间:2021-05-18 10:15:15 所属栏目:站长百科 来源:网络整理
导读:我有一个小傻问题.我已经安装了PostgreSQL数据库服务器,但是当我运行查询时,列标识符没有引号存在问题.我不知道为什么需要标识符周围的引号.我的查询: SELECT vc."CAR_ID" FROM "VEL_CAR" vc,"VEL_DRIVER" vd,"VEL_DRIVER_CAR" vdcWHERE vc."CAR_ID" = vdc.

我有一个小傻问题.我已经安装了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";

我在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;

当我在PostgreSQL中没有引号运行此查询时,它会抛出有关语法的错误:

ERROR:  column vc.car_id does not exist
LINE 1: SELECT vc.CAR_ID

你知道为什么吗?

– 解决了 –
谢谢,现在我解决了这个问题!这是关于表创建.我使用pgAdminIII创建了表对象,并且我写了大写的表名和列名. pgAdminIII使用配额创建查询 – 因为名称是大写的.所以查询必须用配额写.

使用双引号创建表时,列和表名称将区分大小写.所以“car_id”与“CAR_ID”的名称不同

您需要在不使用双引号的情况下创建表,然后名称不区分大小写:car_id与CAR_ID相同(请注意缺少的引号!)

有关详细信息,请参阅手册

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

编辑:Oracle的行为方式完全相同.唯一的区别是Oracle以大写形式存储名称,而Postgres以小写形式存储它们.但使用引号时的行为是相同的.

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读