Sql Server数据库修改为Oracle适用的修改点

建表语句修改

序号修改范围修改方法
1int类型改为number(10)
2numeric类型改为number类型
3smallint类型改为number(5)
4tinyint类型改为number(3)
5bigint类型改为number(19)
6bit类型改为number(2)
7datetime类型改为date类型
8varchar类型改为varchar2类型
9nchar类型改为varchar2类型,长度上限设为原长度的二倍
10nvarchar类型改为varchar2类型,长度上限设为原长度的二倍
11默认值约束在建表语句中添加default
12drop index if exists使用存储过程实现create or replace procedure proc_dropindex (p_index in varchar2)
         as
      i_count number(10);
      begin
              select count(1) into i_count
              from user_indexes
              where index_name = upper(p_index);
          if i_count > 0 then
           execute immediate 'drop index '|| p_index ||'';
           end if;         
      end;
          
      end;
13drop table if exists使用存储过程实现create or replace procedure proc_droptable (p_table in varchar2)
         as
      t_count number(10);
      begin
              select count(1) into t_count
              from user_tables
              where table_name = upper(p_table);
          if t_count > 0 then
           execute immediate 'drop table '|| p_table ||' purge';
           end if;         
      end;
  
14有默认值字段是否可为空设置默认值的字段取出是否可为空的定义
15unique clustered类型索引(聚簇索引)由于unique索引改为主键约束,而oracle自动在主键上建立索引,故不需要再单独建立索引,所以也改为主键约束即可
16unique索引修改为表的主键约束

存储过程修改

序号修改范围修改方法
1存在存储过程则删除改为 create or replace procedure
2参数声明去掉@符号,去掉未使用的参数
3errCode返回声明err输出参数
4结果集返回返回游标,要求存储过程定义参数列表中含有该游标,使用时用open cursor for
5局部变量声明去掉declare关键字,统一移动到begin关键字之前,且以分号隔开
6赋值将select xx = xx 改为:=
7若存储过程存在,则将执行该存储过程的权限授予另一用户创建存储过程来完成此功能create or replace procedure proc_grant (proc_name in varchar2,user_name in varchar2)
         as
      p_count number(10);
      begin
              select count(1) into p_count
              from user_procedures
              where proc_name = upper(proc_name);
          if p_count > 0 then
           execute immediate 'grant execute on '|| proc_name ||' to '||user_name||'';
           end if;         
      end;
8存储过程参数设置默认值将=改为:=
9select语句中为字段定义别名时,不可以使用单引号删除单引号
10临时表建立oracle的事务级别的临时表
11关键字禁止使用重命名变量
12返回查询的行数使用select count 语句
13getdate()函数改为sysdate
14substring()函数substr()

自定义函数修改

序号修改范围修改方法
1存在则删除改为create or replace function
2参数声明去掉@符号
3returns改为return
5select赋值oracle中一个select into只能为一个参数赋值,多个参数需要重复写select into语句
6查询影响的行数rowcnt:=sql%rowcount;
7convert函数改为to_char函数
8dateadd(day)函数改为+
9isnull函数改为nvl函数
10ltrim和rtrim函数改为trim函数
11isnumeric函数利用regexp_like函数自定义udf_isnumeric函数
12建立临时表并包含自增字段将自增字段改为number(10)类型,插入时使用rownum
13to_date函数的格式yyyy-mm-dd hh:mm:ss改为yyyy-mm-dd hh24:mi:ss(hh默认为12小时制,等同于hh12,若要24小时制,需要用hh24,分钟用mi)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值