输入参数在查询存储过程中传递

如何动态地在查询中传递IN变量。示例如下(使用oracle db): 我想检查num_pattern模式是否与CALLNUM匹配。输入参数在查询存储过程" title="存储过程">存储过程中传递

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;

回答:

你可以尝试这样的:

select count(*) into RESULT from datatable 

where num_pattern like CALLNUM||'%'

回答:

如果可以,为什么不使用REGEXP_LIKE,而不是像这样,你不需要把那个%在query..also它的功能更强大比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

http://www.techonthenet.com/oracle/regexp_like.php

http://www.sqlsnippets.com/en/topic-11741.html

以上是 输入参数在查询存储过程中传递 的全部内容, 来源链接: utcz.com/qa/260810.html

回到顶部