2

我有一个这样的存储过程

create or replace
PROCEDURE AAA 
(
    p_BBB       IN  VARCHAR,
    ...
)
AS 
T_QUERY varchar2(3000);
BEGIN
     OPEN A_CUR FOR SELECT ... BBB like '%' || p_BBB || '%';

   T_QUERY := 'SELECT BBB like %'|| p_BBB ||'% '; 

END AAA;

问题是,当第一个查询被正确处理时,字符串之间的连接T_QUERY给了我错误(无效字符)。

既不使用concat()T_QUERY也将被传递给另一个执行查询的存储过程。

谁能帮我??

4

2 回答 2

1

你可以试试

T_QUERY :='SELECT BBB like ''%'|| p_BBB ||'%''';
于 2012-09-19T17:17:53.073 回答
1

上述解决方案是正确的。你像这样使用它。

create or replace 
PROCEDURE AAA  
( 
    p_BBB       IN  VARCHAR, 
    ... 
) 
AS  
T_QUERY varchar2(3000); 

BEGIN 

     T_QUERY :='SELECT BBB .. like ''%'|| p_BBB ||'%'''; 
     OPEN A_CUR FOR T_QUERY ; 
     ----
     ----

END AAA; 
于 2012-09-19T18:57:03.060 回答