存储过程里 对参数的判断要怎么写 比如特殊字符要怎么进行判断语句怎么写?

还有我数据库里有个int类型的值直接有SQL语句插入的时候用'1234567'这个值数据库也能插成功这样要怎么处理我是在存储过程里判断的... 还有 我数据库里有个int类型的值 直接有SQL语句插入的时候用'1234567' 这个值 数据库也能插成功 这样要怎么处理 我是在存储过程里判断的 展开
 我来答
王海超521
2012-03-09 · TA获得超过852个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:380万
展开全部
首先回答下面的问题:对于数字组成的字符创,oracle在使用的时候可以当成数值型来用,类似自动转换数值类型;
上面的这个问题,给你个思路,利用ASCII(参数)来获取字符对应的十进制,进而来判断是否为特殊字符
追问
我也知道它会自动转换,下面的那个问题要怎么处理?
除了用ASCII参数还有别的简单的办法吗?
追答
这个已经很简单了。。。更简单的方法我就不知道了!
楼下的方法需要调用exception,同时还不确定具体的特殊字符是什么,感觉更复杂一些
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
micro0369
2012-03-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4030万
展开全部
你可以用类型转换的函数,强行进行类型转换:

Oracle:to_number
SQLServer:convert、cast

然后截获异常,如果触发异常,说明转换失败,含有非数字字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b37ba8c
2012-03-09 · TA获得超过334个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:222万
展开全部
可以自己写一个isnumber的函数,用来检测。
更多追问追答
追问
怎么写?你告诉下吗
追答
create or replace function isnumber(p_in varchar2) return boolean as 
i number;
begin
i := to_number(p_in);
return true;
exception
when others then
return false;
if i = 1 then
null;
end if;
end isnumber;

使用:
if isnumber('12345') then....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式