怎样在Oracle中拼接字符串

ai_wshao 2012-08-28 04:29:35
存储过程中某段代码:select * from meet_info where miuiname like varname;(varname:是传入参数)
问题是 我想让它被%包围 like '%varname%'

求解。。。。
...全文
1184 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2014-04-01
  • 打赏
  • 举报
回复
注意字符转义..... SQL> declare v_var varchar2(100); 2 v_Sql varchar2(1000); 3 begin 4 v_var:='test'; 5 v_sql:='select * from meet_info where miuiname like ''%'||v_var||'%'''; 6 dbms_output.put_line('v_sql='||v_sql); 7 end; 8 / v_sql=select * from meet_info where miuiname like '%test%' PL/SQL 过程已成功完成。
Galen_Gao 2014-03-31
  • 打赏
  • 举报
回复
gangma2 2014-03-31
  • 打赏
  • 举报
回复

select * from meet_info where miuiname like  '%'||varname||'%';
leonskenedy 2012-08-28
  • 打赏
  • 举报
回复
LZ可以使用regexp_like来解决这个问题:
select * from meet_info where regexp_like(miuiname, :varname)
leonskenedy 2012-08-28
  • 打赏
  • 举报
回复
这个可能有点复杂,LZ似乎有想要绑定变量的意思么?
睿智天成 2012-08-28
  • 打赏
  • 举报
回复
在Oracle数据库中,|| 相当于sql里面的 +

select * from meet_info where miuiname like '%'||%varname||'%'
fw0124 2012-08-28
  • 打赏
  • 举报
回复
declare
l_varname varchar2(100) := 'SMITH';
l_sql varchar2(100);
l_cnt int;
begin
l_sql := 'select count(*) from emp where ename like ''%' || l_varname || '%''';
dbms_output.put_line(l_sql);
execute immediate l_sql into l_cnt;
dbms_output.put_line(l_cnt);
end;
DannyHau 2012-08-28
  • 打赏
  • 举报
回复
select * from meet_info where miuiname like '%'||varname||'%';
槑党--一缕风 2012-08-28
  • 打赏
  • 举报
回复
|| 使用这个来拼接字符串的

select * from meet_info where miuiname like '%'||varname||'%'

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧