我编写了一个简单的 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
子句?我该如何解决这个问题?
最佳答案
只需在变量前加上过程名称即可。
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;
/
关于oracle - 如何将变量传递给 Oracle 存储过程中的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31854522/