在oracle中如何用check和like来实现一个字段中只能输入数字

junyh 2005-06-01 02:05:34
以前在sqlserver中可以实现比如说
..
tel varchar(15) check(tel '%[0-9][0-9]'),
..
这样可以输入到tel中的值最后两位一定是数字
为什么在oracle中不能这样做呢
请各位大侠多指教
...全文
463 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2005-06-03
  • 打赏
  • 举报
回复
for example:
SQL> desc t;
名称 空? 类型
----------------------------------------- -------- -------------
FPHM NUMBER
KSHM VARCHAR2(20)


SQL> alter table t add constraints cons_t_check_kshm
2 check(substr(kshm,-2) between 1 and 99999999999);

表已更改。

SQL> insert into t values(1,'1awef2');
insert into t values(1,'1awef2')
*
ERROR 位于第 1 行:
ORA-01722: 无效数字


SQL> insert into t values(1,'1awef22');

已创建 1 行。

SQL> insert into t values(1,'1awef21324');

已创建 1 行。

SQL>
junyh 2005-06-03
  • 打赏
  • 举报
回复
能不能具体给个例子,谢谢大家了
junyh 2005-06-03
  • 打赏
  • 举报
回复
谢谢大家的关注
EverythingMaster 2005-06-02
  • 打赏
  • 举报
回复
不是存储过程,应该是触发器。呵呵
EverythingMaster 2005-06-02
  • 打赏
  • 举报
回复
用存储过程吧!
或者把校验工作交给应用程序来做。
现在这样做的很多,数据的东西不一定都非得扔给数据库来处理,前台的业务逻辑可以先处理,在保存到数据库嘛!
jimhou 2005-06-02
  • 打赏
  • 举报
回复
用函数解决吧
jxc 2005-06-02
  • 打赏
  • 举报
回复
用触发器可以解决。
heyixiang 2005-06-02
  • 打赏
  • 举报
回复
留名关注
junyh 2005-06-01
  • 打赏
  • 举报
回复
自己在顶一下
junyh 2005-06-01
  • 打赏
  • 举报
回复
更正一下
tel varchar(15) check(tel like '%[0-9][0-9]'),

17,381

社区成员

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

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