Oracle 删除客户的过程

Oracle 删除客户的过程,oracle,plsql,Oracle,Plsql,我有以下步骤,应该删除特定客户。我不断地犯错误,我不知道为什么。我是新来的,这是一个班级作业 提前感谢您的帮助: CREATE or REPLACE PROCEDURE DISP_CUST_DELETE (I_CUSTOMER_NUM IN CUSTOMER_NUM&TYPE) BEGIN DELETE FROM CUSTOMER WHERE CUSTOMER_NUM = I_CUSTOMER_NUM; dbms_output.put_line('

我有以下步骤,应该删除特定客户。我不断地犯错误,我不知道为什么。我是新来的,这是一个班级作业

提前感谢您的帮助:

CREATE or REPLACE PROCEDURE DISP_CUST_DELETE (I_CUSTOMER_NUM IN CUSTOMER_NUM&TYPE)

BEGIN 
    DELETE
    FROM  CUSTOMER
    WHERE CUSTOMER_NUM = I_CUSTOMER_NUM;

    dbms_output.put_line('Customer has been deleted');

EXCEPTION
    WHEN NO_DATA_FOUND THEN
        dbms_output.put_line('NO CUSTOMER WITH this number has been deleted');
END;
/
这里有一些更新。
是的,对不起,这就是我的意思。以下是更新的程序

CREATE or REPLACE PROCEDURE DISP_CUST_DELETE (I_CUSTOMER_NUM IN CUSTOMER.CUSTOMER_NUM) AS

BEGIN 
    DELETE
    FROM CUSTOMER
    WHERE CUSTOMER_NUM = I_CUSTOMER_NUM;

    dbms_output.put_line('Customer' || I_CUSTOMER_NUM ||'has been deleted');

EXCEPTION
    WHEN NO_DATA_FOUND THEN
        dbms_output.put_line('NO CUSTOMER WITH'||I_CUSTOMER_NUM||'has been deleted');
END;
/
下面是我得到的错误:

0/0 PL/SQL:编译单元分析已于1/47终止
PLS-00488:“CUSTOMER.CUSTOMER_NUM”必须是一个类型


就像注释中建议的
@sticky bit
,您的代码有语法错误。 为了将变量声明为与先前声明的变量或表列相同的类型,应使用
table.table\u column%type

CREATE or REPLACE PROCEDURE DISP_CUST_DELETE (
    I_CUSTOMER_NUM IN CUSTOMER.CUSTOMER_NUM%TYPE   --> This line here
) AS

BEGIN 
    DELETE
    FROM CUSTOMER
    WHERE CUSTOMER_NUM = I_CUSTOMER_NUM;

    dbms_output.put_line('Customer' || I_CUSTOMER_NUM ||'has been deleted');

    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            dbms_output.put_line('NO CUSTOMER WITH'||I_CUSTOMER_NUM||'has been deleted');
END;
/

就像注释中建议的
@sticky bit
,您的代码有语法错误。 为了将变量声明为与先前声明的变量或表列相同的类型,应使用
table.table\u column%type

CREATE or REPLACE PROCEDURE DISP_CUST_DELETE (
    I_CUSTOMER_NUM IN CUSTOMER.CUSTOMER_NUM%TYPE   --> This line here
) AS

BEGIN 
    DELETE
    FROM CUSTOMER
    WHERE CUSTOMER_NUM = I_CUSTOMER_NUM;

    dbms_output.put_line('Customer' || I_CUSTOMER_NUM ||'has been deleted');

    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            dbms_output.put_line('NO CUSTOMER WITH'||I_CUSTOMER_NUM||'has been deleted');
END;
/

您遇到了什么错误?您所说的
CUSTOMER\u NUM&TYPE
可能是指
CUSTOMER.CUSTOMER\u NUM%TYPE
?请更新问题,不要在其他评论中。注释未格式化。现在您只有
CUSTOMER.CUSTOMER\u NUM
而不是
CUSTOMER.CUSTOMER\u NUM%TYPE
。在末尾添加
%TYPE
…非常感谢,我使用了&而不是%。现在它起作用了。你们都很棒,特别是有点粘。你们都犯了什么错误?你们说的
CUSTOMER\u NUM&TYPE
可能是指
CUSTOMER.CUSTOMER\u NUM%TYPE
?请更新问题,不要在其他评论中。注释未格式化。现在您只有
CUSTOMER.CUSTOMER\u NUM
而不是
CUSTOMER.CUSTOMER\u NUM%TYPE
。在末尾添加
%TYPE
…非常感谢,我使用了&而不是%。现在它起作用了。你们都很棒,特别是有点粘。