Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL错误:ORA-00907:缺少右括号-找不到错误_Sql_Oracle - Fatal编程技术网

SQL错误:ORA-00907:缺少右括号-找不到错误

SQL错误:ORA-00907:缺少右括号-找不到错误,sql,oracle,Sql,Oracle,我一遍又一遍地从相同的语句开始,仍然找不到缺少的右括号。当运行这两个语句时,就会出现这种情况,为了运行其余的表,我需要能够找到右括号 我选择了语句中使用的括号,所有括号似乎都与正确的括号相匹配。有人能提出什么建议吗 CREATE TABLE booking ( bookingNo NUMBER(8) PRIMARY KEY, customerNo NUMBER(8) NOT NULL REFERENCES customer(customerNo), regi

我一遍又一遍地从相同的语句开始,仍然找不到缺少的右括号。当运行这两个语句时,就会出现这种情况,为了运行其余的表,我需要能够找到右括号

我选择了语句中使用的括号,所有括号似乎都与正确的括号相匹配。有人能提出什么建议吗

CREATE TABLE booking (
bookingNo       NUMBER(8) PRIMARY KEY,
customerNo      NUMBER(8) NOT NULL
        REFERENCES customer(customerNo),
registrationNo      VARCHAR2(10) NOT NULL
        REFERENCES vehicle(registrationNo), 
dateOfBooking       DATE NOT NULL
        DEFAULT SYSDATE, 
pickupStreetAddressLine VARCHAR2(30) NOT NULL, 
pickupTown      VARCHAR2(30) NOT NULL, 
pickupPostcode      VARCHAR2(10) NOT NULL, 
startTime       NUMBER(4,2) NOT NULL, 
startDate       DATE NOT NULL
        DEFAULT SYSDATE,
endTime         NUMBER(4,2) NOT NULL, 
endDate         DATE NOT NULL 
        DEFAULTSYSDATE, 
noOfPassengers      NUMBER(3) NOT NULL
        CONSTRAINT CHECK(noOfPassengers > 0 AND noOfPassengers <= 73) 
price           NUMBER(8,2) NOT NULL
); 

CREATE TABLE employees (
nationalInsuranceNo VARCHAR2(10) PRIMARY KEY, 
fullName        VARCHAR2(50) NOT NULL, 
streetAddress       VARCHAR2(30) NOT NULL, 
town            VARCHAR2(30), 
postcode        VARCHAR2(10) NOT NULL, 
homeNo          NUMBER(11)
dateOfBirth     DATE NOT NULL, 
gender          VARCHAR2(8) NOT NULL
        CONSTRAINT CHECK(gender="Male" OR gender="Female"), 
jobDescription      VARCHAR2(30) NOT NULL, 
currentSalary       NUMBER(6) NOT NULL
        CONSTRAINT CHECK(currentSalary>0)
);
创建表格预订(
bookingNo NUMBER(8)主键,
客户编号(8)不为空
参考客户(客户编号),
注册号VARCHAR2(10)不为空
参考车辆(注册号),
预订日期的日期不为空
默认系统日期,
pickupStreetAddressLine VARCHAR2(30)不为空,
pickupTown VARCHAR2(30)不为空,
pickupPostcode VARCHAR2(10)不为空,
起始时间编号(4,2)不为空,
起始日期不为空
默认系统日期,
结束时间编号(4,2)不为空,
endDate日期不为空
DEFAULTSYSDATE,
NoofPassenger编号(3)不为空
约束检查(NoopPassenger>0和NoopPassenger 0)
);

我没有安装Oracle进行测试,但是上面的NoofPassenger列是否缺少逗号?更一般地说,它可能不是缺少正确的参数,而是由于另一个语法错误而不合适的参数。希望有帮助。

将第17行的
DEFAULTSYSDATE
更改为
DEFAULTSYSDATE
另外,在每个
检查
之前和
约束
单词之后添加列名。并在第一个
约束
语句后添加逗号


希望有帮助:)

尝试使用标准缩进方案来直观地验证格式

在这里,我将每个重要的paren移到一个新行,并分别缩进每个片段

我在几个似乎错误的项目旁添加了评论:

CREATE TABLE 
    booking 
        (
            bookingNo               NUMBER(8) PRIMARY KEY,
            customerNo              NUMBER(8) NOT NULL 
                REFERENCES          customer(customerNo),
            registrationNo          VARCHAR2(10) NOT NULL
                REFERENCES          vehicle(registrationNo), 
            dateOfBooking           DATE NOT NULL
                DEFAULT SYSDATE, 
            pickupStreetAddressLine VARCHAR2(30) NOT NULL, 
            pickupTown              VARCHAR2(30) NOT NULL, 
            pickupPostcode          VARCHAR2(10) NOT NULL, 
            startTime               NUMBER(4,2) NOT NULL, 
            startDate               DATE NOT NULL
                DEFAULT SYSDATE,
            endTime                 NUMBER(4,2) NOT NULL, 
            endDate                 DATE NOT NULL 
                DEFAULT SYSDATE,    -- THERE WAS A MISSING SPACE HERE *********************
            noOfPassengers      NUMBER(3) NOT NULL, -- MISSING COMMA ********
                CONSTRAINT Check_noOfPassengers CHECK -- ADD A CONSTRAINT NAME *********
                    (
                        noOfPassengers > 0 
                        AND noOfPassengers <= 73
                    ), -- THERE WAS A MISSING COMMA HERE ******************* 
            price                   NUMBER(8,2) NOT NULL
        ); 

CREATE TABLE 
    employees 
        (
            nationalInsuranceNo     VARCHAR2(10) PRIMARY KEY, 
            fullName                VARCHAR2(50) NOT NULL, 
            streetAddress           VARCHAR2(30) NOT NULL, 
            town                    VARCHAR2(30), 
            postcode                VARCHAR2(10) NOT NULL, 
            homeNo                  NUMBER(11), -- THERE WAS A MISSING COMMA HERE ***************
            dateOfBirth             DATE NOT NULL, 
            gender                  VARCHAR2(8) NOT NULL, -- MISSING COMMA *****
                CONSTRAINT Check_gender CHECK -- ADD A CONSTRAINT NAME *********
                    (
                        gender="Male" 
                        OR gender="Female"
                    ), 
            jobDescription      VARCHAR2(30) NOT NULL, 
            currentSalary       NUMBER(6) NOT NULL, -- MISSING COMMA
                CONSTRAINT Check_currentSalary CHECK -- ADD A CONSTRAINT NAME *********
                    (
                        currentSalary>0
                    )
        );
创建表
预订
(
bookingNo NUMBER(8)主键,
客户编号(8)不为空
参考客户(客户编号),
注册号VARCHAR2(10)不为空
参考车辆(注册号),
预订日期的日期不为空
默认系统日期,
pickupStreetAddressLine VARCHAR2(30)不为空,
pickupTown VARCHAR2(30)不为空,
pickupPostcode VARCHAR2(10)不为空,
起始时间编号(4,2)不为空,
起始日期不为空
默认系统日期,
结束时间编号(4,2)不为空,
endDate日期不为空
默认SYSDATE,--此处缺少空格*********************
NoofPassenger编号(3)不为空,--缺少逗号********
约束检查\u noofPassenger检查--添加约束名称*********
(
无乘客>0
无乘客0
)
);