我创建了一个简单的表:
CREATE TABLE "ADVUPGRD"."GL_CAMPUSEMAILS"
("Campus" VARCHAR2(2 CHAR), "SEND_TO" VARCHAR2(60 CHAR), "SEND_CC"
VARCHAR2(250 CHAR), "SEND_BCC" VARCHAR2(60 CHAR))
表已经创建了,我可以从gl_campusemails中选择*,它会给我一个空行,因为我还没有填充这个表。 当我填写表格时,我使用了这个:
INSERT INTO GL_CAMPUSEMAILS (Campus, Send_To, Send_CC, Send_BCC)
VALUES('CP', 'as@gmail.com', 'test@yahoo.com', 'test2@gmail.com');
但我收到此错误消息:
从命令行中的第8行开始出错 -
插入GL_CAMPUSEMAILS(校园,Send_To,Send_CC,Send_BCC) 价值观(' CP',' as @gmail.com',' test@yahoo.com',' test2@gmail.com')
命令行出错:8列:56 错误报告 - SQL错误:ORA-00904:" SEND_BCC":无效的标识符 00904. 00000 - "%s:无效标识符" *原因:
*操作:
我用Google搜索并发现了很多帖子,但它们主要与select语句中保留字的使用有关。 我不认为我在这里使用的专栏属于任何保留字。我在这里做错了什么
答案 0 :(得分:1)
如果在创建表时使用双引号,则列名称将与键入时完全相同,区分大小写;因此,你插入应该是:
INSERT INTO GL_CAMPUSEMAILS(
"Campus",
"SEND_TO",
"SEND_CC",
"SEND_BCC"
)
VALUES (
'CP',
'as@gmail.com',
'test@yahoo.com',
'test2@gmail.com'
);
如果您创建没有引号的表,这将正常工作
CREATE TABLE GL_CAMPUSEMAILS
(
Campus VARCHAR2(2 CHAR),
SEND_TO VARCHAR2(60 CHAR),
SEND_CC VARCHAR2(250 CHAR),
SEND_BCC VARCHAR2(60 CHAR)
);
INSERT INTO GL_CAMPUSEMAILS(
Campus,
SEND_TO,
SEND_CC,
SEND_BCC
)
VALUES (
'CP',
'as@gmail.com',
'test@yahoo.com',
'test2@gmail.com'
);
请注意,不使用双引号,Oracle会考虑所有具有大写名称的对象;例如,"CAMPUS"
,campus
,CaMpUs
将起作用,而"campus"
则不会