在 SOURCE 列下的视图中,我有以下值。
SRC - TERM - randomtext - LOCATION(仅供参考)
ABC DE RANDOMJIBBERISH MORE RANDOMJIBBERISH FORWARD
ARY HES RANDOMJIBBERISH MORE RANDOMJIBBERISH  BACKWARD
IGHE UER RANDOMJIBBERISH MORE RANDOMJIBBERISH  LEFT
现在我有一个查询,需要根据源查找该视图。这个工作得很好。
SELECT 
    t.DATE_, t.PX_LAST
FROM 
    THIS.TABLE_NEW t 
WHERE
    t.DATE_ >= '2003-03-02'
    AND t.DATE_ <= '2013-03-02' 
    AND t.SOURCE LIKE 'ABC DE % FORWARD' --Where the magic happens
    AND t.SOURCE LIKE '%'||'1M'||'%'
    AND t.PX_LAST is NOT NULL
ORDER BY 
    t.DATE_ ASC;
现在,问题是,当我尝试在存储过程中实现它时,我需要在我得到的参数中插入百分号。这不起作用,尤其是它使用 inSource 查找源的部分
PROCEDURE Get_It
(
    inSource VARCHAR2,
    inStartDate DATE,
    inEndDate DATE,
    inLength VARCHAR2,
    inRC1 OUT SYS_REFCURSOR
) AS
BEGIN
OPEN inRC1 FOR
SELECT t.DATE_, t.PX_LAST
FROM THIS.TABLE_NEW t WHERE
t.DATE_ >= inStartDate
AND t.DATE_ <= inEndDate 
AND t.SOURCE LIKE inSource --Where the magic needs to happen 
AND t.SOURCE LIKE '%'||length||'%'
AND t.PX_LAST is NOT NULL
ORDER BY t.DATE_ ASC;
END GET_IT;
所以基本上我需要在字符串 ( ) 的中间插入一个百分号inSource,在最后一个单词和倒数第二个单词之间,一直。我能够在查询中做到这一点,因为我可以手动将其放入字符串中,但在实际的存储过程中,我不知道如何操作字符串。