我正在尝试编写一个程序来查找匹配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:无效数字错误,我做错了什么?
答案 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;