您的代码中有几个错误(如果不调整就不能使用 TSQL 代码):
- 参数名称在 Oracle 中不使用 @(如 @a_horse_with_no_name 所述)
- 你需要一些东西来存储结果(同样,正如@a_horse_with_no_name 所提到的)
- 你不能用 3 个参数调用 CONCAT;要连接字符串,您可以使用
||
运算符
Oracle 的一个可能实现(对搜索结果使用 ref 游标)将是
CREATE TABLE testimonials
(pk NUMBER NOT NULL PRIMARY KEY,
content VARCHAR2(100));
CREATE OR REPLACE PROCEDURE Search_Testimonials(WRDSRCH VARCHAR2,
v_cur IN OUT sys_refcursor) AS
BEGIN
OPEN v_cur FOR
SELECT *
FROM Testimonials
WHERE content LIKE '%' || WRDSRCH || '%';
END;
用法(来自 SQL/Plus):
var x refcursor;
begin
search_testimonials('hello', :x);
end;
/
print x;