Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle ORA-00900让我发疯_Oracle_Stored Procedures_Plsql_Compiler Errors - Fatal编程技术网

Oracle ORA-00900让我发疯

Oracle ORA-00900让我发疯,oracle,stored-procedures,plsql,compiler-errors,Oracle,Stored Procedures,Plsql,Compiler Errors,您好,我创建了一个从数据库中删除客户信息的过程。 这是代码 CREATE PROCEDURE remove_customer (customer_id VARCHAR2) IS BEGIN DELETE FROM order_line WHERE order_line.order_id in (SELECT order_id FROM placed_order WHERE placed_order.customer_id = remove_customer.c

您好,我创建了一个从数据库中删除客户信息的过程。 这是代码

CREATE PROCEDURE remove_customer (customer_id VARCHAR2) IS
BEGIN
    DELETE FROM order_line
    WHERE  order_line.order_id in
    (SELECT order_id FROM placed_order
     WHERE placed_order.customer_id = remove_customer.customer_id
    );

    DELETE FROM placed_order
    WHERE placed_order.customer_id = remove_customer.customer_id;

    DELETE FROM customer
    WHERE customer.customer_id = remove_customer.customer_id;
END;
这是生产的ORA-00900,我不能找出什么是错误的代码

它也产生了这个错误

第4行错误:PLS-00302:必须声明组件“订单ID”

有人发现什么吗


谢谢

看来你应该用

customer_id
而不是

remove_customer.customer_id 

ORA-00900表示SQL语句无效。@RichardC-编译或运行时是否出现错误?如果您在运行时得到了它,您是如何运行该过程的?当我运行它时,但错误现在已更改为第4行的错误:PLS-00302:必须声明组件“订单ID”?检查您的表格。表ORDER\u行上是否有名为ORDER\u ID的列?请注意-大写在这里很重要。如果有一列看起来像命令行,那么它是大写、混合大写还是小写?我想我知道了,它叫fk1\u ORDER\u id,我猜这就是问题所在。嗯,我尝试更改了所有的删除客户,但仍然收到相同的错误?您选择的
customer\u id
是合法的(Oracle选择本地参数变量而不是列名),但是
删除客户。客户id
也是合法的。我不认为这是问题的原因。嗯,现在出现了一个新错误。第4行错误:PLS-00302:必须声明组件“订单id”。有什么想法吗?设法让它工作了,无论如何,谢谢看起来问题是Oracle无法区分订单行。订单id和placed_order.order_id;请尝试从下单中选择下单.order_id