簡體   English   中英

Oracle存儲過程中的Select語句

[英]Select statement inside an Oracle stored procedure

我正在嘗試自學SQL。 我正在從oracle中的存儲過程中調用一個簡單的select語句。

我創建了一個包含2個表的員工數據庫; 員工和部門。 我想要一條選擇語句,該語句返回某個部門的所有雇員。

這是我到目前為止的內容,我無法弄清楚哪里出了問題

create or replace procedure user_empdepart (depart_name varchar(40))
AS
BEGIN
    SELECT emp_name FROM employee JOIN department ON department.departmentID = 
employee.departmentID
    WHERE depart_name = 'research';
END;

然后我希望以上述方式致電給我;

exec user_empdepart(research);

我正在使用SQL Developer Oracle

我收到以下錯誤消息:

錯誤(99,50):PLS-00103:預期以下情況之一時遇到符號“部門”: 對於具有相交的負順序的組,在連接處開始並集

我認為您需要這個-

create or replace procedure user_empdepart (depart_name varchar(40))
AS
DECLARE dept_name varchar(200);
dept_name := depart_name;
BEGIN
SELECT emp_name FROM employee JOIN department ON department.departmentID = employee.departmentID
WHERE depart_name := dept_name;
END;

在Oracle數據庫中,直接在客戶端(如SQL-Developer或SQLPlus)中執行的SQL語句被視為普通的普通SQL。
但是,如果要在過程或函數中使用SQL命令,Oracle會將它們視為PL / SQL命令,而不是SQL。
對於簡單的INSERT,DELETE和UPDATE命令,PL / SQL中的語法與SQL中的語法相同,但是對於SELECT而言,語法略有不同: PL / SQL SELECT INTO語句

您必須使用SELECT expression-list INTO variables-list/record FROM .....語法。
您不能使用SELECT expression-list FROM ..... ,這會生成語法錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM