带有空格的Oracle表列名

时间:2012-12-10 09:22:39

标签: sql oracle

是否可以创建包含空格的列名称的表?如果是这样,我该如何创建和使用它?

6 个答案:

答案 0 :(得分:32)

有可能,但不建议。您需要将列名括在双引号中。

create table my_table ("MY COLUMN" number);

但请注意the documentation中的警告:

  

注意:Oracle不建议对数据库使用带引号的标识符   对象名称。 SQL * Plus接受这些带引号的标识符,但是   使用其他管理数据库的工具时,它们可能无效   对象。

名称区分大小写,每次引用时都必须用双引号括起名称:

select "MY COLUMN" from my_table;

所以......不要,这是我的建议......

答案 1 :(得分:4)

是的,这是可能的。您必须确保引用列名称。例如:

CREATE TABLE Fubar ("Foo Bar" INT);
INSERT INTO Fubar VALUES (1337);
SELECT "Foo Bar" FROM SpaceMonster

尽管有可能,但这并不是一个好主意。如果只用下划线替换所有空格,你可能会避免很多痛苦。

答案 2 :(得分:2)

如果你恰当地引用这些,你可以(见the Oracle doc)。但是我怀疑这不是一个好主意,因为你必须引用一切。通常,db命名标准/约定(例如herehere)倾向于在空格上使用下划线(不需要引用)。

答案 3 :(得分:1)

可以通过在两个"之间命名列来实现 例如:“我的columN”,列名称变为区分大小写,这意味着。

SELECT "my column" from table; --NOT OK
SELECT "My columN" from table; --OK

答案 4 :(得分:0)

这是为oracle

定义的列规则

列(表格)

  1. 所有列均采用{alias} _ {colname}格式。例如prs_id, prs_name,prs_adr_id,adr_street_name。这保证了列 除了非规范化列之外,名称在模式中是唯一的 另一个表,使用触发器或应用程序填充 逻辑。
    1. 所有列都是单数。如果您认为需要复数列名,请三思而后行,是否是正确的设计?通常它 表示您在同一列中包含多个值 应该避免。
    2. 所有表格都以{alias} _id格式代理主键列,这是表格中的第一列。例如,prs_id,mat_id, adr_id。
  2. 您可以使用“”

    始终为列名bu添加别名

答案 5 :(得分:0)

你有Google吗?我做了 - 第6个链接是this,其中我找到了以下内容:

create table employee (
   "First Name" varchar2(20),
   "Last Name" varchar2(20),
   Address varchar2(60),
   Phone varchar2(15),
   Salary number,
   EmpID number,
   DeptID number
); 

......当我在10g中尝试时它工作正常。