簡單的:一條語句搞定,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,說明里邊包含非數字的字符
分享標題:oracle中怎么判斷,oracle中怎么判斷字符第一次出現
分享路徑:http://vcdvsql.cn/article18/hedcdp.html
成都網站建設公司_創新互聯,為您提供網站建設、網站策劃、Google、小程序開發、品牌網站設計、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯