2017-11-25 164 views
0

我试图创建一个oracle数据库。在编写下面的代码并在Oracle 11g中运行后,它给了我一个错误,说明第1行无效字符!错误在第1行:ORA-00911:无效字符

SPOOL output.log; 
DROP TABLE DrinkRecord CASCADE CONSTRAINTS; 
/*Creates the Table */ 
CREATE TABLE DrinkRecord 
(
    ID NUMBER(11) PRIMARY KEY NOT NULL, 
    DrinkType VARCHAR(255) NOT NULL, 
    DrinkName VARCHAR(255) NOT NULL, 
    DrinkBenefit VARCHAR(255) NOT NULL 
); 
COMMIT; 
/*Begin Inserting Values into the table*/ 
INSERT INTO DrinkRecord (ID, DrinkType, DrinkName, DrinkBenefit) VALUES (1,’Fluid’,’Water’,’life’); 
COMMIT; 
INSERT INTO DrinkRecord (ID, DrinkType, DrinkName, DrinkBenefit) VALUES (2,’Liquid’,’Milk’,’Strengthen bon.’); 
COMMIT; 
INSERT INTO DrinkRecord (ID, DrinkType, DrinkName, DrinkBenefit) VALUES (3,’Fluid’,’Ginger Ale’,’Prevent discomfort.’); 
COMMIT; 
INSERT INTO DrinkRecord (ID, DrinkType, DrinkName, DrinkBenefit) VALUES (4,’Fluid’,’Fish Oil’,’vitamins.’); 
COMMIT; 
SELECT * FROM DrinkRecord; 
COMMIT; 
SPOOL OFF; 

端OUT把当我运行代码:

Terminal Out put when I run the code:

+1

因此,如果您的问题是关于INVALID CHARACTER错误,为什么标题谈论另一个,TABLE或VIEW DOES NOT EXIST,错误?写一个反映问题实际内容的标题太难了吗? – mathguy

+0

不要使用MS word或富文本编辑器来构建您的sql脚本。使用简单的文本编辑器。 –

回答

3

您正在使用代替'

+0

@moh - 即:您正在使用“书法”单引号,而不是单引号(单键引号)。这是Oracle语法所不允许的。您将不得不更改INSERT语句以使用“标准”简单的单引号字符。 – mathguy

+0

@mathguy感谢您的提示!其实,我一直在纠正,但在我保存并运行后,仍然存在错误。对不对:我刚刚纠正,只是复制代码,并将其传递给我的终端,它无法通过FileZilla调用它。 –

+0

@MohK - 我不知道FileZilla是什么。在你的帖子中没有提到它。如果错误是由FileZilla而不是由Oracle引起的,并且您有后续问题,则需要打开一个新线程,解释发生了什么(FileZilla中的错误,但不是直接粘贴到终端中时),以及标记FileZilla的问题。 Oracle专家可能不知道如何帮助您解决这类问题。 – mathguy

0

唉,Oracle没有drop table if existscreate or replace table。这里有一个简单的方法:

BEGIN 
    EXECUTE IMMEDIATE 'DROP TABLE DrinkRecord CASCADE CONSTRAINTS'; 
EXCEPTION 
    WHEN OTHERS THEN NULL; -- this just ignores all errors 
END; 

CREATE TABLE DrinkRecord . . . 
+0

问题的标题是误导性的--OP在询问体内的不同问题(不是“表不存在”错误,而是另一个关于无效字符的问题)。 – mathguy

+0

此外 - 没有必要“修复”表或视图不存在“的错误。错误消息被抛出,但脚本继续运行:它创建表,它插入行等。绝对不需要您提出的代码(当然,这是正确的,没必要)。 – mathguy

+0

@mathguy代码是**不正确**当然,只有可以默默忽略的东西是'ORA-00942'。 “其他人”可能会导致一个很大的惊喜,例如当表空间离线... –