存储过程中判断变量是否含有一个字符,没有就加入

牧牛人软件 2006-07-27 04:23:51
V_Title Varchar2(200);
V_caption Varchar2(200);
........................
V_Title :='Who are ';


select V_Title || ' you' into V_caption
from dual
where instr(V_Title,'you')=0;

..............................................................................
以上SQL的意思是当V_Title中没有字符'you'时,在V_Title后面加入'you'给 V_caption.
===============================================================================

我要问的是:
1. select V_Title from dual 可行吗? (因为提问时我手头没有ORACLE环境)

2.在存储过程中可以这样用instr()函数.

if instr(V_Title,'you')<0 then -- V_Title中没有'you'
V_caption:= V_Title || ' you'; -- ◆◆为什么始终不到这里来?
end if

3.如果您有其他办法,请您提供。





...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧牛人软件 2006-07-28
  • 打赏
  • 举报
回复
qiaozhiwei(乔) :问题可能就在这里,谢谢!
qiaozhiwei 2006-07-27
  • 打赏
  • 举报
回复
用INSTR要注意NULL的情况,建议 NVL(instr(V_Title,'you'),0)
sxykje 2006-07-27
  • 打赏
  • 举报
回复
if instr(V_Title,'you')=0 then
V_caption:= V_Title || ' you';
end if;

这样写没错
可以执行的
snooper 2006-07-27
  • 打赏
  • 举报
回复
1、可以用;
2、 if instr(V_Title,'you')<=0 then
V_caption:= V_Title || ' you';
end if
牧牛人软件 2006-07-27
  • 打赏
  • 举报
回复
2):instr(V_Title,'you') <0 没有小于0,应该是=0
我是笔误!

sxykje 2006-07-27
  • 打赏
  • 举报
回复
1)select V_Title || ' you' 可以
2):instr(V_Title,'you')<0 没有小于0,应该是=0

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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