1、 Oracle觸發器中如何定義變量、對變量賦值
declare msg varchar2(22); sourceUser varchar2(18):=’’; sourceUserTpCount number; ifExit number:=0; 2、 Oracle觸發器中如何獲取觸發當前動作的數據 msg:=:NEW.msg; sourceUser:=:NEW.sourceUser; NEW是系統關鍵字,跟在後面的是表字段 3、 If-else結構 if LENGTH(msg)>3 and LOWER(SUBSTR(msg,1,1))='8' then … … Else … … End if; 4、 與MSSQL對應的一些常用函數(只總結了我這次遇到的) 截取字符串 MSSQL:SUBSTRING(“字符串”,1,3) Oracle:SUBSTR(“字符串”,1,3) 時間格式字符串轉換成日期類型 MSSQL:convert(datetime,’ 2009-12-26’) Oracle: to_date('2009-12-26','yyyy-MM-dd') 日期類型轉換成時間格式字符串 MSSQL: convert(varchar(120),getdate(),120) Oracle: to_char(sysdate,'YYYYMMDD') 5、 常用日期操作 比較同一天 MSSQL:datediff(dd,’’,’’)=0(還有其他多種辦法) ORACL: TO_CHAR(gentime,'YYYYMMDD')= TO_CHAR(sysdate,'YYYYMMDD') DateTime類型與時間格式的字符串進行時間比較 MSSQL:getdate()>’2009-12-1’ Oracle: sysdate<to_date('2009-12-26','yyyy-MM-dd') 6、 Oracle中的標識列 MSSQL中的標識列在建表的時候設置int類型字段屬性就可以了。Oracle中的標識列需要先建立個SEQ,然後為表建立觸發器,當數據插入時獲取新的標識ID保存,通過“SEQ名.nextval”獲取新的標識ID。 7、 獲取系統時間 MSSQL:getdate() Oracle:sysdate 8、 打印信息 MSSQL:PRINGT ‘輸出信息’ Oracle: dbms_output.put_line(‘輸出信息’);nt 9、 其他 如何將查詢的單一結果賦值給變量 MSSQL:select 變量=count(*) from table ORALCE:Select count(*) into 變量 from table 一條語句後是否需要加分號 MSSQL:不需要 ORALCE:每一句結束後需要加分號 字符串相加 MSSQL: returnMsg:='感謝您對'+xsBH+'號候選人的支持!'; Oracle: returnMsg:='感謝您對'||xsBH||'號候選人的支持!'; Oracle觸發器案例代碼:代碼 create or replace trigger t_table_triger