[英]Apex Oracle success with compilation error
我正在嘗試在SQL中創建一個正文包,其中包含3個過程,用於添加客戶,刪除客戶和列出所有客戶。 但這給了我ORA-24344錯誤。
這是我的代碼:
CREATE OR REPLACE PACKAGE BODY c_package AS
--Adds a customer
PROCEDURE addCustomer(c_id customers.id%type,
c_name customers.name%type,
c_age customers.age%type,
c_addr customers.address%type,
c_sal customers.salary%type)
IS
BEGIN
INSERT INTO customers(id,name,age,address,salary)
VALUES(c_id,c_name,c_age,c_addr,c_sal);
END addCustomer;
--Removes a customer
PROCEDURE delCutomer(c_id customers.id%TYPE) IS
BEGIN
DELETE FROM customers
WHERE id = c_id;
END delCustomer;
--Lists all customers
PROCEDURE listCustomer IS
CURSOR c_customers is
SELECT name FROM customers;
TYPE c_list is TABLE OF customers.name%type;
name_list c_list := c_list();
counter integer := 0;
BEGIN
FOR n IN c_customers LOOP
counter := counter + 1;
name_list.extend;
name_list(counter) := n.name;
dbms_output.put_line('Customer(' ||counter||') '||name_list(counter));
END LOOP;
END listCustomer;
END c_package;
問題是包裝體內部的過程必須以“ END”而不是“ END procedure_name”結束。
這是正確的代碼:
CREATE OR REPLACE PACKAGE BODY c_package AS
--Adds a customer
PROCEDURE addCustomer(c_id customers.id%type,
c_name customers.name%type,
c_age customers.age%type,
c_addr customers.address%type,
c_sal customers.salary%type)
IS
BEGIN
INSERT INTO customers(id,name,age,address,salary)
VALUES(c_id,c_name,c_age,c_addr,c_sal);
END;
--Removes a customer
PROCEDURE delCutomer(c_id customers.id%TYPE) IS
BEGIN
DELETE FROM customers
WHERE id = c_id;
END;
--Lists all customers
PROCEDURE listCustomer IS
CURSOR c_customers is
SELECT name FROM customers;
TYPE c_list is TABLE OF customers.name%type;
name_list c_list := c_list();
counter integer := 0;
BEGIN
FOR n IN c_customers LOOP
counter := counter + 1;
name_list.extend;
name_list(counter) := n.name;
dbms_output.put_line('Customer(' ||counter||') '||name_list(counter));
END LOOP;
END;
END c_package;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.