我试图插入表,它为一列使用一个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从中删除它,它按预期工作.但我需要订购它.请澄清.
提前致谢.
在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认为我错过了一个括号?
我正在尝试创建表(orderdetails2); 该表在两个FK列上有两个FK和一个PK.这是我的代码:
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)
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)
问题是什么?
我是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) 我正在尝试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) 我过去两天一直在看这个代码,我似乎无法让它工作.它一直在给我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) 使用演员表(收集(...))时,如何订购结果?
我有一个名为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) 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:缺少右括号
我正在使用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) 我知道 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)