如何动态地在查询中传递IN变量。示例如下(使用oracle db): 我想检查num_pattern模式是否与CALLNUM匹配。
create or replace PROCEDURE EXECUTE_CDIV
(
CALLNUM IN VARCHAR2,
RESULT OUT VARCHAR2
)
AS
BEGIN
select count(1) into RESULT
from datatable
where num_pattern like 'CALLNUM%' ;
END;
答案 0 :(得分:0)
您可以尝试这样:
select count(*) into RESULT from datatable
where num_pattern like CALLNUM||'%'
答案 1 :(得分:0)
如果可用,为什么不使用REGEXP_LIKE而不是类似的,这样你就不需要在查询中添加%..而且它比LIKE运算符更强大
create or replace PROCEDURE EXECUTE_CDIV
(
CALLNUM IN VARCHAR2,
RESULT OUT VARCHAR2
)
AS
BEGIN
select count(1) into RESULT
from datatable
where regexp_like(num_pattern, CALLNUM );
END;
/
如果需要区分大小写搜索,请参阅文档,您可以在其中添加更多选项... https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm