资源描述:
《oracle开发 VS INFORMIX开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、变量定义Oracle: v_table_nameUSER_TABLES.table_name%TYPE;Informix:define v_table_namelikesystables.tabname;判断某张表是否被锁住Oracle: selectcount(*)intov_countfromv$locked_objectwhereobject_id in(selectobject_idfromuser_objectswhereobject_name=upper('fact_g_gprs_settle'));Informix:selectcount(*)i
2、ntov_countfromsysmaster:syslockswhereowner>0andwaiter>0andtabname=lower(‘fact_G_gprs_settle'));to_char和to_date函数Oracle:to_char(sysdate,'yyyymmdd')to_date(‘20080910’,’yyyymmdd’)Informix: to_char(today,’%Y%m%d‘);to_char(current,’%Y%m%d’);to_date(‘20080910’,%Y%m%d);在日期中增加某个单元值Oracle:增加1天:
3、 sysdate+1增加一分钟:SYSDATE+1/24/60Informix:增加1天: today+1unitsday(增加其他时间单元方法类似);增加1分钟:current+1unitsminute判断是否是星期六Oracle:to_char(to_date(sampling_date,'yyyymmdd'),'fmday')='星期六' informix:weekday(to_date(sampling_date,'yyyymmdd'))=6DUALOracle:selectto_char(sysdate-i,'yyyymmdd')intov_datef
4、romdual;Informix:letv_date=to_char(today–iunitsday,’%Y%m%d’)不需要和数据库交互;或者selectto_char(today–iunitsday,‘%Y%m%d')intov_datefromdual;其中dual是sysmaster:sysdual的同义词,已经在zhjs_app中创建。其中:i是整形变量others exception的转换Oracle:exception whenotherstheno_returncode:=-1;o_returnmsg :=substr('[01]'
5、
6、'p_bi
7、_control_call_code错误告警'
8、
9、sqlerrm,1,255);rollback;Informix:definesql_errint;defineisqm_errint;defineerr_infovarchar(255)onexceptionsetsql_err,isam_err,err_info--informix依次把sqlcode,isamcode和错误信息传递给上述3个变量;leto_return_code=-1let=substr('[01]'
10、
11、'p_bi_control_call_code错误告警'
12、
13、err_info,1,255);r
14、ollback;returno_returncode,o_returnmsg;endexception;人工触发exceptionOracle:e_errorexception;/*exception是一个变量*/ifv_flagnotin('a','b')thenraisee_error;endif;exceptionwhene_errorthenrollback;vo_errmsg:='[p_expdb_acc_d_sms]error:'
15、
16、vo_errmsg;vo_return:='1161';Informix: onexceptionin(30000)rol
17、lback;letvo_errmsg='[p_expdb_acc_d_sms]error:'
18、
19、vo_errmsg;letvo_return='1161';returnvo_errrms,vo_returnendexception;ifv_flagnotin('a','b')thenraiseexception30000;endif;注意:1)exception的错误号必须是一个smallint的数字;2)informix通过return语句获得返回值;而oracle通过头文件的声明来获得;3)无论是informix还是oracle在触发except