1、Shell操作存储过程
1)Sybase
VAR="`isql -U$USERNAME -P$PASSWORD -S$SERVER -o $SPLOGFILE <<EOF
use $DB
go
declare @iReV int
declare @cReV char(1)
exec @iReV=$SPNAME $STR_DTE,$END_DTE
select @execute immediate=convert(char(1),@iReV)
print @cReV
go
quit
EOF`"
2)Oracle
VAR="`sqlplus -S $USERNAME/$PASSWORD@$SERVER > ${SPLOGFILE} <<EOF
set serveroutput on
exec $SPNAME($STR_DTE,$END_DTE);
drop procedure SAP_BL_INC_01_CHNG_SVVD_test;
quit
EOF`"
PL/SQL procedure successfully completed.
2、存储过程区别
http://blog.youkuaiyun.com/sun120204535/article/details/73373074
3、数据导入导出
1)Sybase:
bcp sapdb..tb_XX out $FILEDIR/out_filename -U $USERNAME -S $SERVER -P $PASSWORD -e $FILEDIR/error_filename -c -t'' > $FILEDIR/V_out_filename.log
bcp $DB..tb_XX in /tb_XX.bcp -U$USERNAME -P$PASSWORD -S$SERVER -t"" -c
2)Oracle:sqlplus -S $USERNAME/$PASSWORD@$SERVER > ${SPLOGFILE} <<EOF
set colsep '' pageSize 0 linesize 1000
spool $FILEDIR/filename
select * from tb_XX
spool off
EOF
sqlldr $USERNAME/$USERNAME@$SERVER control=tb_XX.ctl
4.大小写
Oracle表名、字段名不区分大小写,Sybase严格区分
5.函数
1、Oracle中to_char()/to_date() ---Sybase的convert()
--Oracle:to_char(sysdate,'dd-mm-yyyy day'),to_date(string,format)
--Sybase:convert(char(15),日期,108),convert(datetime,string,108)
--末尾附 Sybase convert第三个参数介绍
2、Oracle中 substr() -- Sybase的 substring()
3、Oracle中 nvl() -- Sybase的 isnull()
4、Oracle取系统时间 sysdate -- Sybase的 getdate()
5、Oracle的decode -- Sybase的 case when then
--Oracle: select decode(param,null,resultA,resultB) from res;
--Sybase:select case when param is null then resultA else resultB end from res;
6、外连接
--Oracle:select * from tableA a ,tableB b where a.id=b.id(+);--Sybase:select * from tableA a,tableB b where a.id*=b.id;
7、insert 方法
--Oracle:insert into tableA(select * from tableB where tableB.id="");--Sybase:insert into tableA(id,name,age)(select * from tableB where tableB.id=""); insert的表必须写清列名
欢迎补充 ^_^