接收字符返回字符或數(shù)值時(shí)可以使用dual偽表
目前累計(jì)服務(wù)客戶上千多家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計(jì)的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
1、把小寫字符轉(zhuǎn)換成大寫
select supper(“smi”) form dual
2、把大寫轉(zhuǎn)換成小寫
lower(“SMI”)
3、首字母大寫
initcap(“smi”)
4、字符串的連接可以使用concat,也可以使用? ? 建議使用
concat(“hello”“world”) 結(jié)果為helloworld
5、字符串的截取,使用substr,第一個(gè)參數(shù)為字符串,第二個(gè)參數(shù)是索引,第三個(gè)參數(shù)結(jié)束索引(開始索引使用0和1效果一樣)
substr(hello,0,3) 結(jié)果為hel
6、獲取字符串長度
length(“hello”)
7、字符串替換,第二個(gè)參數(shù)為被替換的字符串,第三個(gè)是替換的字符串
replace(“hello”,“l(fā)”,“x”) 結(jié)果為hexxo
1、四舍五入函數(shù)ROUND()
默認(rèn)取整,可以指定保留位數(shù)
round(12.523)? 結(jié)果為13
round(12.537,2) 結(jié)果為12.54
2、取整TRUNC
默認(rèn)全部去掉小數(shù),可以指定位數(shù)
trunc(12.789) 結(jié)果為12
3、取余數(shù)MOD
mod(10,3) 結(jié)果為1
oracle中提供了很多和日期相關(guān)的函數(shù),包括日期的加減
日期 - 數(shù)字 =日期
日期 - 日期 = 數(shù)字(天)
1、如:查詢員工進(jìn)入公司的走數(shù)
(sysdate - 入職日期)/7
注:當(dāng)前日期查詢select sysdate form dual
2、查詢所有員工進(jìn)入公司的月數(shù)
獲取兩個(gè)時(shí)間段的月數(shù)使用months_between(sysdate,入職日期)
3、獲取幾個(gè)月后的日期:add_months()
如:獲取員工三個(gè)月后的日期
add_months(sysdate,3)
4、如求出下星期一是什么時(shí)候
指定給出下次某日期數(shù)next_date()
next_date(sysdate,“星期一”)
5、求日期的最后一天last_day()
求出本月的最后一天
last_day(sysdate)
1、to_char字符串轉(zhuǎn)換函數(shù)
如:將所有員工的入職日期的年、月分開
注:在劃分時(shí)需要通配符
年:yyyy? 月:mm? 日:dd
時(shí):HH 分:mi? 秒:ss
定義時(shí)間格式
to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)
在10以下的月數(shù)前面會(huì)默認(rèn)加上前導(dǎo)零,去除加上fm
to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)
to_char還可以給數(shù)字做格式化
如將員工的工資按三位“,”分隔
to_char(工資,“99,999”) 9代表數(shù)字
如果想在錢上加上國家符號
美元使用
中文使用l
to_char(工資,“99,999”)
to_char(工資,“l(fā)99,999”)
2、to_number數(shù)值轉(zhuǎn)換函數(shù),將字符串轉(zhuǎn)換成數(shù)值
to_number(“10”) +to_number(“10”)
3、to_date日期轉(zhuǎn)換函數(shù),將字符串?dāng)?shù)據(jù)轉(zhuǎn)換成日期類型
to_date(“1997-05-12”,“YYYY-mm-dd”)? 1997/05/12
1、空值處理 nvl
如果在查詢的時(shí)候存在空值的情況可以使用
nvl(comm,0) 當(dāng)comm的列值為空時(shí),用0代替
2、decode函數(shù)
該函數(shù)類似于if ...else if ...else
語法:decode(列名/值,search1,result1,search2,result2,default)
decode(中國,中國,我是中國,美國,我是美國,其他)
如果為中國返回我是中國,為美國返回我是美國,為其他字符則返回其他。
3、case when 與decode差不多
語法 case when city=中國 then 我是中國
? ? ? ? ? when city=美國 then 我是美國
? ? ? ? ? ? else 其他
oracle中的Function有兩種,一種是系統(tǒng)內(nèi)置的函數(shù)(直接拿來用就行),一種是自定義的(自己寫的完成特定功能的)。function可以在DML語句中執(zhí)行。如select upper('AaBbCcDd') '大寫' from dual 其中upper就是系統(tǒng)自帶的函數(shù),是把參數(shù)中的字符串變成大寫字符。
自定義函數(shù)的語句格式是:
create or replace function 函數(shù)名 return 返回值類型 is [聲明部分]
begin 主體語句; return 結(jié)果; [exception 異常處理部分;] end;
調(diào)用:select 函數(shù)名 from dual;
或者像執(zhí)行procedure一樣調(diào)用也可以 begin 函數(shù)名; end;
外層管道函數(shù):
CREATE OR REPLACE FUNCTION F_CAGOODAVG_D_ZH_AQI (List varchar2,p_StartDate varchar2,p_EndDate varchar2,
p_cal number,p_MethodCode number,usercode varchar2)
RETURN TCA_GETSUBGOODAVG_D_AQI PIPELINED
...
end F_CAGOODAVG_D_ZH_AQI;
在ORACLE中,函數(shù)的調(diào)用方式有位置表示法調(diào)用函數(shù)、命名表示法調(diào)用函數(shù)、混合使用位置表示法和命名表示法調(diào)用函數(shù)、排除表示法、ql調(diào)用表示法 --混合表示法。
甲骨文股份有限公司(Oracle)是全球大型數(shù)據(jù)庫軟件公司,總部位于美國加州紅木城的紅木岸。在2008年,甲骨文股份有限公司是繼Microsoft及IBM后,全球收入第三多的軟件公司。Oracle數(shù)據(jù)庫產(chǎn)品為財(cái)富排行榜上的前1000家公司所采用,許多大型網(wǎng)站也選用了Oracle系統(tǒng)。甲骨文股份有限公司于1989年正式進(jìn)入中國,在北京、上海、廣州和成都均設(shè)立了分支機(jī)構(gòu)。
提示已經(jīng)講得清楚: 表TEST.TB_CLEARING發(fā)生了變化, 觸發(fā)器/函數(shù)不能讀它.
在使用oracle行級(for earch row設(shè)定)觸發(fā)器時(shí)要注意:
1.觸發(fā)器不可以執(zhí)行COMMIT、ROLLBACK或SAVEPOINT語句,而且不可以調(diào)用執(zhí)行這些語句之一的函數(shù)或過程。
2.觸發(fā)器不可以聲明long或LONG RAW變量。
3.觸發(fā)器不可以在定義它的表上執(zhí)行DML操作(行級觸發(fā)器)
你在該觸發(fā)器中要讀取觸發(fā)器器所在的表的數(shù)據(jù)(數(shù)據(jù)DML操作), 這是不允許的.
你將行級觸發(fā)改成表級觸發(fā), 即去掉for each fow試試. 反正在你的語句中也沒有使用到NEW, OLD這兩個(gè)行級觸發(fā)器新值, 舊值記錄.
調(diào)用oracle存儲(chǔ)過程用begin...end的方式。
基本語法:
begin 存儲(chǔ)過程名(參數(shù)1,參數(shù)2……);--如果無參數(shù)則省略括號及括號內(nèi)部分end;
如,有存儲(chǔ)過程:
create or replace procedure p_testasv_begintime varchar2(20);v_endtime varchar2(20);v_str varchar2(10);begin v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); select 'badkano' into v_str from dual; v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); dbms_output.put_line('開始時(shí)間為:'||v_begintime); dbms_output.put_line('結(jié)束時(shí)間為:'||v_endtime);end;
執(zhí)行:begin p_test;end;
網(wǎng)站題目:oracle函數(shù)如何執(zhí)行,oracle命令執(zhí)行
本文網(wǎng)址:http://www.rwnh.cn/article36/dscojpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、小程序開發(fā)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)