简单的:一条语句搞定,SqlPlus里面select decode(length(replace(translate('字符串的值','0123456789.',' '),' ','')),0,'is number','is not a number') from dual; 麻烦点的:写function在oracle数据库中,create or replace function f_str_or_num(str varchar2) return varchar2 is
站在用户的角度思考问题,与客户深入沟通,找到新县网站设计与新县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖新县地区。
2 v_num number;
3 v_return varchar2(60);
4 begin
5 v_num:=to_number(str);
6 v_return:=str||' is a number string!';
7 return v_return;
8 exception when others then
9 v_return:=str||' is not a number string!';
10 return v_return;
11 end f_str_or_num; 然后调用select f_str_or_num('字符串的值) from dual;
select
case
when
regexp_like(字段名,'.([a-z]+|[A-Z])')
then
'包含字母'
else
'不包含字母'
end
from
表名字
正则表达式函数:regexp_like
关键的参数是第二个:'.([a-z]+|[A-Z])'其中.表示匹配任何单字符,换行符除外
[a-z]是小写字母|或[A-Z]大写字母。
编程注意事项:
1、程序不仅需要给计算机读
,
也要给程序员读。
程序设计风格的原则
,
代码应该清楚的和简单的
,
具有直截了当的逻辑
,
自然的表达式
,
通行的语言使用方式
,
有意义的名字和帮助作用和注释。
2、自定义类型名以大写字母开头,各单词之间以大写字母分隔,如
CallType
(即骆驼式命
名法)
。
变量名以小写字母开头,
各单词之间以大写字母
分隔
(变量活动范围前缀以下划线
分隔)
,如
m_pReleaseIn。函数名以大写字母开头,各单词之间以大写字母分隔(进程、进
程页及子函数前缀以下划
线分隔)
,如
Sub_ErrorDealing。
3、命名宏定义时,表示最大个数时定义为
XXX_MAX_NUM(如最大子节点个数可用
SNODE_MAX_NUM表示)
,表示最大取值时定义为
XXX_MAX(如
PT
板
E1的最大取值
可用
PT_E1_MAX表示)
。定义最小个数时定义为
XXX_MIN_NUM,定义最小取值时定义
为
XXX_MIN。
(以防止下标使用时难以分辨是否需要减
1)
这个属于oracle时间函数的用法
在oracle里,日期格式是一种特殊的东西
这里有一个日期转换函数
select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;
这里的to_char就是将日期型转换成字符型的一个函数,转换成的格式就是
2010-08-23 17:51:20
当然你可以将这个日期转换成其他,如:
select to_char(日期,'yyyy-mm-dd') from tablename;
查出来的结果2010-08-23
所以你要根据这个日期来查东西就可以这么用
select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'
这个就是查日期8月1日到8月23日的数据
select * from tablename where to_char(日期,'yyyymmdd') = '20100801'
这个就是查8月1日的数据
其他不懂的你再问吧
-------补充------
你把你写的东西粘贴一下,也好帮你分析啊
你后边的" + model.Csrq + "参数传进来的是什么东西?
---------补充2-------
'yyyy-mm-dd 24hi:mi:ss'
这个地方错了,应改成
'yyyy-mm-dd hh24:mi:ss'
不是24hi
oracle判断null和“”是不同方法,其中判断是否为null的有两种
1、select
name
from
table
where
name
is
not
null;
2.使用nvl(name,value)函数,name代表判断的字段为空,后面的value为name为空时,value的值
oracle的if语句采用decode函数。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
Oracle数据库是对标准sql语言的过程化扩展,因此产生了pl/sql语言。其中的if语句大量使用使得程序模块化的功能方便实用。现在要讨论的是if语句的基本使用方法。
连接数据库
请输入用户名: scott/123456
设置环境变量
SQL set serveroutput on
定义两个字符串变量,然后赋值,接着使用if……then语句比较两个字符串变量的长度,并输出比较结果。
declare
a varchar(10);
b varchar(10);
begin
a:='beijing';
b:='guangdong';
if length(a)length(b)
then dbms_output.put_line('ab');
end if;
end;
过if……then……else语句实现只有年龄大于等于56岁,才可以申请退休,否则程序会提示不可以申请退休。
declare
a number(10);
begin
a:=x;
if a=56
then dbms_output.put_line('可以申请退休');
else dbms_output.put_line('不可以申请退休');
end if;
end;
制定一个月份数值,然后使用if……then……elsif语句判断它所属的季节,并输出季节信息。
declare
mon number(10);
begin
mon:=x;
if mon=3 or mon=4 or mon=5
then dbms_output.put_line('春节');
elsif mon=6 or mon=7 or mon=8 then dbms_output.put_line('夏季');
elsif mon=9 or mon=10 or mon=11 then dbms_output.put_line('秋季');
elsif mon=12 or mon=1 or mon=2 then dbms_output.put_line('冬季');
end if;
end;
制定一个季度数值,然后使用case语句判断它所包含的月份信息并输出。
declare
ss number(10);
begin
ss:=x;
case
when ss=1 then dbms_output.put_line('包含月份3,4,5');
when ss=2 then dbms_output.put_line('包含月份6,7,8');
when ss=3 then dbms_output.put_line('包含月份9,10,11');
when ss=4 then dbms_output.put_line('包含月份12,1,2');
end case;
end;
oracle本身没有,得自定义一个函数
create or replace function isNumber(p in varchar2)
return number
is
result number;
begin
result := to_number(p);
return 1;
exception
when VALUE_ERROR then return 0;
end;
调用
select isNumber('abc123') from dual
或者
select isNumber('123') from dual
返回值为1,说明是数字,返回值是0,说明里边包含非数字的字符