带有空格的Oracle表列名

lak*_*sys 24 sql oracle

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

Ale*_*ole 34

这是可能的,但这是不可取的.您需要将列名括在双引号中.

create table my_table ("MY COLUMN" number);
Run Code Online (Sandbox Code Playgroud)

但请注意文档中的警告:

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

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

select "MY COLUMN" from my_table;
Run Code Online (Sandbox Code Playgroud)

那么......不,这是我的建议......


Ale*_*øld 5

是的,这是可能的。您只需要确保引用列名。例如:

CREATE TABLE Fubar ("Foo Bar" INT);
INSERT INTO Fubar VALUES (1337);
SELECT "Foo Bar" FROM SpaceMonster
Run Code Online (Sandbox Code Playgroud)

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