我真的很陌生,我必須創建一個存儲過程。Oracle:存儲過程錯誤
我的想法是,我想輸入我的PaperRoll_ID
並獲得「Worker_ID」。由於表中的PaperRoll_ID
值是從1到500,而我的Worker_id
值是從1500到2000,所以我想讓PaperRoll_ID
等於Worker_id
索引,而不是索引值(我的意思是索引1是第一個Worker_id
我補充說,2是第二等,直到500(工人數))。 PaperRoll_ID
位於表machine_operator
中的表invoice_Paper
和Worker_id
中。
對不起,如果它很難理解,但我缺乏SQL知識,所以我有點難以表達自己。
create or replace PROCEDURE name_worker(pi IN NUMBER, mi OUT NUMBER) IS
BEGIN
Select q.worker_ID2 INTO mi
from invoice_paper z,machine_operator o
where z.PaperRoll_ID=pi AND o.WORKER_ID2 = q.worker_ID2;
END;
表是
create Table invoice_paper(
PaperRoll_ID Number(10) constraint ppr_id not null,
Single_Layer Varchar(20) Default 'None in stock',
Double_Layer Varchar(20) Default 'None in stock',
Manufacturer_FactoryID Integer,
primary key(PaperRoll_ID),
Constraint pprid_invoice Foreign key (Manufacturer_FactoryID) References Paper_Factory(Factory_ID)
);
create table machine_operator(
Insurence_ID number(10) constraint in_numb not null,
Worker_ID2 number(10) constraint worka_id not null,
operator_name Varchar(20),
Email Varchar(30),
Primary key (Insurence_ID, Worker_ID2),
Constraint wka_id Foreign key(Worker_ID2) References worker(worker_id)
);
樣本數據和期望的結果將真正幫助表達您想要做的事情。 –
@specbk q是您的查詢中的表的別名? –
什麼數據庫對象由別名'q'表示。它不映射到FROM子句中的任何內容。就目前而言,'invoice_paper'和'machine_operator'之間沒有連接標準。 – APC