标签: ora-00907

ORA-00907缺少右括号问题 - 通过内部插入查询选择顺序

我试图插入表,它为一列使用一个select语句.以下是我的查询的说明.

INSERT INTO MY_TBL (MY_COL1, MY_COL2)
VALUES (
(SELECT DATA FROM FIR_TABL WHERE ID = 1 AND ROWNUM = 1 ORDER BY CREATED_ON DESC),
1 
);
Run Code Online (Sandbox Code Playgroud)

它抛出ORA-00907 Missing right Parenthesis.如果我ORDER BY从中删除它,它按预期工作.但我需要订购它.请澄清.

提前致谢.

sql oracle ora-00907

13
推荐指数
1
解决办法
4万
查看次数

为什么Oracle认为我错过了一个正确的括号?

在Oracle 10i中,我运行以下命令:

ALTER TABLE jnrvwchnglst ADD
     ( jnrvwchnglst_userid NUMBER(10) NOT NULL DEFAULT 1 )
Run Code Online (Sandbox Code Playgroud)

jnrvwchnglst现有表,jnrvwchnglst_userid不是现有列.

Oracle错误消息是:

ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

这个查询有什么问题,为什么Oracle认为我错过了一个括号?

sql oracle ora-00907

11
推荐指数
1
解决办法
1万
查看次数

外键和主键同时使用

我正在尝试创建表(orderdetails2); 该表在两个FK列上有两个FK和一个PK.这是我的代码:

版本1

    create table OrderDetails2 (
PFOrder_ID Number(3)  FOREIGN KEY REFERENCES Orderr(Order_ID),
PFProduct_ID Number(3) FOREIGN KEY REFERENCES Product(Product_ID),
CONSTRAINT PF PRIMARY KEY (PFOrder_ID,PFProduct_ID),
CONSTRAINT FK_1 FOREIGN KEY (PFProudct_ID)
REFERENCES Product(Product_ID),
CONSTRAINT FK_2 FOREIGN KEY (PFOrder_ID)
REFERENCES Orderr(Order_ID),
Run Code Online (Sandbox Code Playgroud)

版本2

            create table OrderDetails2 (
    PFOrder_ID Number(3)
    PFProduct_ID Number(3) 
    CONSTRAINT PF PRIMARY KEY (PFOrder_ID,PFProduct_ID),
    CONSTRAINT FK_1 FOREIGN KEY (PFProudct_ID) REFERENCES Product(Product_ID),
    CONSTRAINT FK_2 FOREIGN KEY (PFOrder_ID) REFERENCES Orderr(Order_ID)
);
Run Code Online (Sandbox Code Playgroud)

我正在使用Oracle Express.运行代码时弹出一个问题.这是(对于版本1):

ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

问题是什么?

sql oracle ora-00907

7
推荐指数
1
解决办法
8104
查看次数

ORA-00907:创建表时缺少右括号错误?

我是oracle的新手,我使用以下查询创建了两个表,

CREATE TABLE employee
(
 emp_name VARCHAR(20) NOT NULL,
 street VARCHAR(50) NOT NULL,
 city VARCHAR(20) NOT NULL,
 PRIMARY KEY(emp_name)
)
Run Code Online (Sandbox Code Playgroud)

CREATE TABLE company
(
 comp_name VARCHAR(20) NOT NULL,
 city VARCHAR(20) NOT NULL,
 PRIMARY KEY(comp_name)
)
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用一些外键创建另一个表,

CREATE TABLE works
(
emp_name varchar(20) NOT NULL,
comp_name varchar(20) NOT NULL,
salary  int(10) NOT NULL,
FOREIGN KEY(emp_name) REFERENCES employee(emp_name),
FOREIGN KEY(comp_name) REFERENCES company(comp_name)
)
Run Code Online (Sandbox Code Playgroud)

获取错误:ORA-00907:缺少右括号

我也尝试过

CREATE TABLE works
(
emp_name varchar(20) NOT NULL,
comp_name varchar(20) NOT NULL,
salary  int(10) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

oracle ora-00907

7
推荐指数
1
解决办法
3万
查看次数

两个选择上的UNION给出'SQL错误:ORA-00907:缺少右括号'

我正在尝试UNION两个查询的结果.但是我收到以下错误:

Error at Command Line:9 Column:81
Error report:
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

SELECT application_id, clicks, datee, client_id FROM(
(select 
    APPL_CD AS application_id, 
    count(*) as clicks, 
    to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee, 
    ALRT_RSPNS_FROM_CLIENT_ID AS client_id 
from  ALRT_PLATFORM_ALRT_HSTRY
    where  ACTN_TAKE_CD is not null 
    group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID order by datee) 
UNION ALL
(select 
    APPL_CD AS application_id, 
    count(*) as clicks, 
    to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee, 
    ALRT_RSPNS_FROM_CLIENT_ID AS client_id 
from  ALRT_PLATFORM_ALRT
    where  ACTN_TAKE_CD is …
Run Code Online (Sandbox Code Playgroud)

sql oracle union ora-00907

6
推荐指数
1
解决办法
5397
查看次数

ORA-00907:缺少右括号

我过去两天一直在看这个代码,我似乎无法让它工作.它一直在给我ORA-00907: missing right parenthesis.我知道这是一个很多问题,但由于某些原因,我见过的所有例子都没有帮助我.有人可以告诉我为什么我得到这个错误,我该如何解决它.我很确定它与我的括号无关,也许是我的CONSTRAINTS

DROP TABLE T_customers CASCADE CONSTRAINTS;
DROP TABLE dvd_collection CASCADE CONSTRAINTS;
DROP TABLE vhs_collection CASCADE CONSTRAINTS;

CREATE TABLE T_customers   (


                           customer_id         VARCHAR2 (8) PRIMARY KEY,
                           last_name           VARCHAR2 (30) NOT NULL,
                           first_name          VARCHAR2 (20) NOT NULL,
                           street             VARCHAR2 (30) NOT NULL,
                           city               VARCHAR2 (30) NOT NULL,
                           state                 CHAR (2) NOT NULL,
                                    CHECK (state IN ('GA','DC','VA','NY')),
                           zip_code           CHAR (5)
                                    CHECK (TO_NUMBER(zip_code)
                              BETWEEN 10000 AND 27999),
                           home_phone         VARCHAR2 (12) UNIQUE,
                           work_phone         VARCHAR2 (12) UNIQUE,
                           email                 VARCHAR2 (95) …
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00907

6
推荐指数
3
解决办法
19万
查看次数

在Oracle(11.2之前版)中:当使用强制转换(collect(...))时,如何订购结果?

使用演员表(收集(...))时,如何订购结果?

我有一个名为GetStringForTable的函数,定义如下:

FUNCTION GetStringForTable(vTable in TVarCharTable, vDelimeter in varchar default ',') return VarChar2 is
    aResult varchar2(32767);
    i int;
  begin
    if vTable.count = 0 then 
      return '';
    end if;

    for i in 1 .. vTable.Count loop
      if i > 1 then
        aResult := aResult || vDelimeter;
      end if;
      aResult := aResult || vTable(i);
    end loop;
    return aResult;
  end GetStringForTable;
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

select
  name,
  rep.GetStringForTable
      ((
          Select 
            cast(collect(name) as TVarCharTable)  
          from 
            contacts
          where 
            debtoraccount = dt.accountnumber
      )
      ,', ' --Delimiter
      ) "Contacts" 
from …
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00907

5
推荐指数
2
解决办法
4277
查看次数

ORA-00907:缺少右括号

CREATE TABLE Persons (
  P_Id int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  PRIMARY KEY (P_Id)
)

CREATE TABLE Orders (
  O_Id int NOT NULL PRIMARY KEY,
  OrderNo int NOT NULL,
  P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
Run Code Online (Sandbox Code Playgroud)

我在创建表格订单时遇到错误:

ORA-00907:缺少右括号

sql oracle ora-00907

5
推荐指数
1
解决办法
1万
查看次数

(又一个)"缺少正确的括号"

我正在使用10g,我正在尝试进行一些简单的计算,然后将结果保存在一列中.实际的表有更多列,但以下是我在查询中使用的内容:

CREATE TABLE "VACCINE_LOT"
(
  "VACCINE_LOT_ID"   NUMBER(10,0) NOT NULL ENABLE,
  "DOSE"             NUMBER(6,3),
  "QUANTITY_ON_HAND" NUMBER(12,2) NOT NULL ENABLE
)
CREATE TABLE "IMMUNIZATION"
(
  "VACCINE_LOT_ID" NUMBER(10,0),
  "DOSE_MAGNITUDE" NUMBER(4,2)
)
CREATE TABLE "VACCINE_LOT_TRANSACTION"
(
  "VACCINE_LOT_ID" NUMBER(10,0) NOT NULL ENABLE,
  "QUANTITY"       NUMBER(12,2) NOT NULL ENABLE
)
INSERT INTO vaccine_lot VALUES (100, 0.2, 120);
INSERT INTO immunization VALUES (100, 0.2);
INSERT INTO immunization VALUES (100, 0.3);
INSERT INTO vaccine_lot_transaction VALUES (100, 150);
Run Code Online (Sandbox Code Playgroud)

免疫注射取自疫苗批次.'Dose_magnitude'是一个特定的免疫注射使用了多少.vaccine_lot中的'Dose'列显示了标准免疫注射的使用量.所以标准镜头可能是0.1cc.但是一次免疫射击实际上可能使用0.2cc甚至0.05cc.vaccine_lot_transaction中的"数量"列最初记录疫苗批次包含的标准免疫注射数量.

我在这里要做的是为疫苗批次计算正确的'Quantity_on_hand'(也就是说,疫苗批次还剩下多少标准免疫注射).

以下是使用我们刚刚插入的数据的示例.我们有一个疫苗批次(批次ID为'100'),它开始时有150个标准镜头(也就是说,它包含150个0.2cc镜头).这批次已有两次免疫注射,一次0.2cc,另一次0.3cc).目前120的数量显然是错误的,我们需要重新计算并更新它.

这是我的查询:

UPDATE vaccine_lot V SET quantity_on_hand =
(
 (
   (SELECT …
Run Code Online (Sandbox Code Playgroud)

oracle ora-00907

5
推荐指数
1
解决办法
1202
查看次数

SQL 语法错误:“缺少右括号”

我知道 ORA-00907 表示我的代码中有语法错误,我只是找不到它。有人可以帮忙指出问题吗?我正在使用 SQL Developer (Oracle12c)。

CREATE TABLE equip 
  (equipid NUMBER(3),
   edesc VARCHAR2(30), 
   purchdate DATE, 
   rating CHAR(1), 
   deptid NUMBER(2) NOT NULL, 
   etypeid NUMBER(2),
    CONSTRAINT equip_equipid_pk PRIMARY KEY (equipid),
    CONSTRAINT equip deptid_fk FOREIGN KEY (deptid) REFERENCES dept (deptid),
    CONSTRAINT equip_etypeid_fk FOREIGN KEY (etypeid) REFERENCES etypes (etypeid),
    CONSTRAINT equip_rating_ck CHECK (rating IN ('A','B','C')));

Run Code Online (Sandbox Code Playgroud)

Oracle12 SQL 语法错误

sql oracle syntax-error ora-00907 oracle12c

3
推荐指数
1
解决办法
44
查看次数

标签 统计

ora-00907 ×10

oracle ×10

sql ×8

oracle12c ×1

syntax-error ×1

union ×1