[英]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.