如何解决为什么此查询没有返回结果
我在MySQL中有简单的查询,例如
SELECT * FROM generals WHERE `Key` = '{$key}'
我想使用PL / SQL在Oracle中创建函数,当我将其转换为PL/SQL
时,看起来就像
FUNCTION GET_GENERALS_BY_KEY(p_key IN VARCHAR2)
RETURN SYS_REFCURSOR IS
rc SYS_REFCURSOR;
BEGIN
OPEN rc FOR
SELECT * FROM generals WHERE Key LIKE '%p_key%';
RETURN rc;
END GET_GENERALS_BY_KEY;
测试时,我会像这样调用函数
SELECT GENERALS_PACKAGE.GET_GENERALS_BY_KEY('Company_Name') FROM DUAL;
但是不返回任何东西。 但是当我使用这样的查询时,它会返回结果。
SELECT * FROM generals WHERE Key = 'VAT';
怎么了?我在哪里弄错了?
解决方法
应该是
OPEN rc FOR
SELECT * FROM generals WHERE Key LIKE '%' || p_key || '%';
^^ ^^
concatenation
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。