是否可以创建包含空格的列名称的表?如果是这样,我该如何创建和使用它?
答案 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命名标准/约定(例如here或here)倾向于在空格上使用下划线(不需要引用)。
答案 3 :(得分:1)
可以通过在两个"
之间命名列来实现
例如:“我的columN”,列名称变为区分大小写,这意味着。
SELECT "my column" from table; --NOT OK
SELECT "My columN" from table; --OK
答案 4 :(得分:0)
这是为oracle
定义的列规则列(表格)
您可以使用“”
始终为列名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中尝试时它工作正常。