在 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
,在最后一个单词和倒数第二个单词之间,一直。我能够在查询中做到这一点,因为我可以手动将其放入字符串中,但在实际的存储过程中,我不知道如何操作字符串。