在oracle中查找类似的行

时间:2014-04-16 20:31:44

标签: sql oracle plsql

我正在尝试编写一个程序来查找匹配LIKE关键字的记录,这就是我所拥有的:

CREATE OR REPLACE procedure proc_search_tracks_name(q IN tracks.track_name%TYPE)
AS
results tracks%rowtype;
BEGIN
  SELECT * INTO results FROM tracks WHERE track_name LIKE '%' + q + '%';
  dbms_output.put_line(results.track_id || ' ' || results.track_name);
END proc_search_tracks_name;

/
declare
Begin
 proc_search_tracks_name('Love');
end;
/

但由于某些原因我得到了ORA-01722:无效数字错误,我做错了什么?

1 个答案:

答案 0 :(得分:3)

您正在使用SQL Server语法来连接字符串。试试这个:

SELECT * INTO results FROM tracks WHERE track_name LIKE '%' || q || '%';

如果您有多行,则表示into存在问题。您可以将其限制为一行。 我认为这将有效

SELECT * INTO results FROM tracks WHERE track_name LIKE '%' || q || '%' WHERE rownum = 1;