Sybase与Oracle区别(部分)

本文介绍了在Sybase和Oracle数据库中进行Shell操作的方法,包括存储过程的调用、数据的导入导出等实用技巧,并对比了这两种数据库系统在语法上的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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的表必须写清列名

欢迎补充 ^_^


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值