简体   繁体   English

动态参数查询

[英]Dynamic parameterized query with like

The Normal assignment operator is working fine but like operation is not working with below query in a Stored Procedure, Could you correct what is wrong with the query? 普通赋值运算符工作正常,但就像该操作不适用于存储过程中的以下查询,您可以更正查询的问题吗?

On changing only to LIKE Operator below query based procedure throws exception 在仅更改为LIKE Operator的情况下,基于查询的过程将引发异常

AND APP_FRAMES.APP_EXT_CODE =:IN_APP_EXT_CODE%;      -- working

AND APP_FRAMES.APP_EXT_CODE LIKE %:IN_APP_EXT_CODE%; -- not working

Working Code: 工作代码:

QUERY_STR := 'select * from APP_FRAME_PROPERTIES,APP_FRAMES
Where APP_FRAME_PROPERTIES.APP_EXT_CODE = APP_FRAMES.APP_EXT_CODE
AND APP_FRAMES.APP_EXT_CODE =:IN_APP_EXT_CODE';

OPEN OUT_RESULT FOR QUERY_STR USING IN_APP_EXT_CODE;

You have to concatenate the '%' literals: 您必须连接'%'文字:

AND APP_FRAMES.APP_EXT_CODE LIKE '%' || :IN_APP_EXT_CODE || '%'; 

The whole query would be: 整个查询将是:

QUERY_STR := 'select * from APP_FRAME_PROPERTIES,APP_FRAMES
Where APP_FRAME_PROPERTIES.APP_EXT_CODE = APP_FRAMES.APP_EXT_CODE
AND APP_FRAMES.APP_EXT_CODE LIKE ''%'' || :IN_APP_EXT_CODE || ''%'' ';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM