我编写了一个简单的oracle存储过程来使用SYS_REFCURSOR
获取一些数据。在我的查询中,我有一个WHERE
子句。我想将参数传递给where子句。这就是我试过的,
CREATE OR REPLACE PROCEDURE GETCUSTOMER(customer_code IN CUSTOMER.CUSTOMER_CODE%TYPE, customer_names OUT SYS_REFCURSOR)
IS
BEGIN
OPEN customer_names FOR
SELECT
*
FROM CUSTOMER
WHERE CUSTOMER_CODE = customer_code;
END;
/
我使用spring jdbcTemplate执行了此操作。这没有按预期工作。这将获取CUSTOMER
表中的所有数据。
是否有将参数传递给WHERE
子句的特殊方法?我该如何解决这个问题?
答案 0 :(得分:3)
只需在变量前加上过程名称。
CREATE OR REPLACE PROCEDURE GETCUSTOMER(customer_code IN CUSTOMER.CUSTOMER_CODE%TYPE, customer_names OUT SYS_REFCURSOR)
IS
BEGIN
OPEN customer_names FOR
SELECT
*
FROM CUSTOMER
WHERE CUSTOMER_CODE = GETCUSTOMER.customer_code;
END;
/