我正在尝试在 PL/SQL 过程中运行 SQL。如果我说:
SELECT * FROM myTable WHERE FNAME like 'Joe%' AND dept = 'xyz';
这会立即运行。
如果我尝试将“Joe”放入变量中,则需要永远运行,大约 3 分钟。这是我发现的一些用于使用 like 变量的语法。
PROCEDURE myProcedure(firstName IN VARCHAR,
cEmployees OUT cursor_type)
IS
BEGIN
OPEN cEmployees FOR
SELECT * FROM myTable WHERE FNAME like firstName || '%' AND dept = 'xyz';
END myProcedure;
我做错了什么?谢谢。
最佳答案
我已经有一段时间没有从事 Oracle 工作了。
但是,您可以避免这种情况
SELECT * FROM myTable WHERE FNAME like firstName || '%'
相反,请在上述语句之前设置 firstName
变量。
例如名字 = 名字 || '%'
(请原谅语法)
然后SELECT * FROM myTable WHERE FNAME like firstName
关于sql - Oracle 在 where 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3265027/