mysql,oracle函数不同

1数字函数round(1.23456,4)round(1.23456,4)一样:
ORACLE:从双
MYSQL中选择round(1.23456,4)值:select round(1.23456,4)value
2 abs(-1)abs(-1)功能:将当前数据取绝对值
用法:oracle和mysql用法一样
mysql:select abs(-1)value
oracle:select select(-1)value from dual
3 ceil(-1.001))ceiling(-1.001)功能:返回不小于X的最小整数
用法:
mysqls:select ceiling(-1.001)value
oracle:从双
4楼(-1.001)楼层选择ceil(-1.001)值(-1.001)功能:返回不大于X的最大整数值
用法:
mysql:select floor(-1.001)value
oracle:select floor(-1.001)value from dual

5最大(表达式)/最小(表达式)最大值(表达式)/最小(表达式)功能:返回EXPR的最小或最大值.MIN()和MAX()可以接受一个字符串参数;这在
种情况下,它们将返回最小或最大的字符串传下。
用法: 
ROACLE:从sd_usr中选择max(user_int_key);
MYSQL:从sd_usr中选择max(user_int_key);
6字符串函数ascii(str)ascii(str)功能:返回字符串str最左边的那个字符的ASCII码值。如果str是一个空字符串,
那么返回值为0.如果str是一个NULL,返回值也是NULL。
用法: 
mysql:选择ascii('a')值
oracle:从双
7 CHAR(N,...)中选择ascii('a')值CHAR(N,...)功能:CHAR()以整数类型解释参数,返回这个整数所代表的ASCII码值给出的字符
组成的字符串.NULL值将被忽略。
用法: 
mysql:select char(97)value
oracle:从双重选择chr(97)值

8 REPLACE(str,from_str,to_str)REPLACE(str,from_str,to_str)功能:在字符串str中所有出现的字符串from_str mean was to_str替换,然后返回这个字符串。
用法: 
mysql:SELECT REPLACE('abcdef ','bcd','ijklmn')值 
oracle:SELECT替换('abcdef','bcd','ijklmn')值来自dual


9 INSTR('sdsq','s',2)INSTR('sdsq','s')参数个数不同
ORACLE:从双重中选择INSTR('sdsq','s',2)值(要求从位置2开始)
MYSQL:选择INSTR('sdsq','s')值(从默认的位置1开始)
10 SUBSTR('abcd',2,2)substring('abcd',2,2)函数名称不同:
ORACLE :从双
MYSQL中选择substr('abcd',2,2)值:select substring('abcd',2,2)value
11 instr('abcdefg','ab')locate('ab','abcdefg')函数名称不同:
instr - > locate(注意:locate的子串和总串的位置要互换)
ORACLE:SELECT instr('abcdefg','ab')VALUE FROM DUAL
MYSQL:SELECT locate('ab',' abcdefg')VALUE
12 length(str)char_length()函数名称不同:
ORACEL:SELECT length('AAAASDF')VALUE FROM DUAL
MYSQL:SELECT char_length('AAAASDF')VALUE
13 REPLACE('abcdef','bcd','ijklmn')REPLACE('abcdef','bcd','ijklmn')一样:
ORACLE:SELECT REPLACE('abcdef','bcd','ijklmn')的值来自双
MYSQL:SELECT REPLACE('abcdef','bcd','ijklmn')值
14 LPAD('abcd',14,'0')LPAD('abcd',14,'0')一样:
ORACLE:选择LPAD ('abcd',14,'0')来自双
MYSQL的值:从双
15 UPPER(iv_user_id)UPPER(iv_user_id)选择LPAD('abcd',14,'0')值一样:
ORACLE:选择UPPER(user_id)来自sd_usr;
MYSQL:从sd_usr中选择UPPER(user_id);
16 LOWER(iv_user_id)LOWER(iv_user_id)一样:
ORACLE:从sd_usr中选择LOWER(user_id);
MYSQL:从sd_usr中选择LOWER(user_id);
17控制流函数nvl(u.email_address,10)IFNULL(u.email_address,10)

ISNULL(u.email_address)函数名称不同(根据不同的作用进行选择):
ORACLE:选择u.email_address,nvl(u。 email_address,10)来自sd_usr u的值(如果u.email_address = NULl,就在DB中用10替换其值)
MYSQL:从sd_usr u中选择u.email_address,IFNULL(u.email_address,10)值(如果u.email_address = NULl,显示结果中是10,而不是在DB中用10替换其值)
从sd_usr u中选择u.email_address,ISNULL(u.email_address)值(如果u.email_address是NULL,就显示1 <true>,否则就显示0 <false>)
18 DECODE(iv_sr_status,g_sr_status_com,ld_sys_date,NULL)无,请用IF或CASE语句代替。
IF语句格式:(expr1,expr2,expr3)说明: 
1。解码(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF条件=值1 THEN
    RETURN(翻译值1)
ELSIF条件=值2那么
    RETURN(翻译值2)
    ......
ELSIF条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

2. mysql如果语法说明
功能:如果expr1是TRUE(expr1 <> 0和expr1 <> NULL),则IF()的返回值为expr2;
否则返回值则为expr3.IF()的返回值为数字值或字符串值,具体情况视其所在
语境而定。
用法: 
mysql:SELECT IF(1> 2,2,3);
19类型转换函数TO_CHAR(SQLCODE)date_format / time_format函数名称不同
SQL>从双重选择to_char(sysdate,'yyyy-mm-dd');
SQL>从双精选中选择to_char(sysdate,'hh24-mi-ss');
mysql> select date_format(now(),'%​​Y-%m-%d');
mysql> select time_format(now(),'%​​H-%i-%S');
20 to_date(str,format)STR_TO_DATE(str,format)函数名称不同:
ORACLE:SELECT to_date('2009-3-6','yyyy-mm-dd')VAULE FROM DUAL
MYSQL:SELECT STR_TO_DATE('2004-03 -01','%Y-%m-%d')VAULE
21 trunc(-1.002)cast(-1.002 as SIGNED)函数名称不同:
TRUNC函数为指定元素而截去的日期值
ORACLE:从双选择TRUNC(-1.002)值
MYSQL:SELECT CAST(-1.002作为签名)值
MYSQL:
字符集转换:转换(XXX使用GB2312)
类型转换和SQL Server一样,就是类型参数有点点不同:CAST(xxx AS类型),CONVERT(xxx,类型),类型必须用下列的类型:
 
  可用的类型   
  二进制,同带二进制前缀的效果:BINARY   
  字符型,可带参数:CHAR()    
  日期:DATE    
  时间:时间    
  日期时间型:DATETIME    
  浮点数:DECIMAL     
  整数:SIGNED    
  无符号整数:UNSIGNED  
22 TO_NUMBER(str)CAST(“123”AS SIGNED INTEGER)函数名称不同
ORACLE:SELECT TO_NUMBER(' 123')作为DUAL的价值;
MYSQL:SELECT CAST(“123”AS SIGNED INTEGER)作为值;
SIGNED INTEGER:带符号的整形
23日期函数SYSDATE now()/ SYSDATE()写法不同:
ORACLE:从双
MYSQL中选择SYSDATE值:select now()value
select sysdate()value
24 Next_day(sysdate,7)自定义一个函数:F_COMMON_NEXT_DAY(date,int )函数名称不同:
ORACLE:SELECT Next_day(sysdate,7)value FROM DUAL
MYSQL:SELECT F_COMMON_NEXT_DAY(SYSDATE(),3)来自DUAL的值;
(3:指星期的索引值)
ADD_MONTHS(sysdate,2)DATE_ADD(sysdate(),interval 2 month)函数名称不同:
ORACLE:SELECT ADD_MONTHS(sysdate,2)来自DUAL的价值;
MYSQL:SELECT DATE_ADD(sysdate(),interval 2 month)作为DUAL的值;
26 2个日期相减(D1-D2)DATEDIFF(date1,date2)功能:返回两个日期之间的天数。
用法:
mysql:SELECT DATEDIFF('2008-12-30','2008-12-29')AS DiffDate
oracle:直接用两个日期相减(比如d1-d2 = 12.3)
27 SQL函数SQLCODE MYSQL中没有对应的函数,但JAVA中SQLException.getErrorCode()函数可以获取错误号Oracle内容函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息
.MYSQL:可以从JAVA中得到错误代码,错误状态和错误消息
28 SQLERRM MYSQL中没有对应的函数,但JAVA中SQLException.getMessage()函数可以获取错误消息Oracle内容函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息.MYSQL
:可以从JAVA中得到错误代码,错误状态和错误消息
29 SEQ_BK_DTL_OPT_INT_KEY.NEXTVAL自动增长列在MYSQL中是自动增长列。如下方法获取最新ID:
  START TRANSACTION;    
    INSERT INTO用户(用户名,密码)
      VALUES(用户名,MD5(密码));
    SELECT LAST_INSERT_ID()INTO id;
  承诺;
30 SUM(enable_flag)SUM(enable_flag)一样:
ORCALE:SELECT SUM(enable_flag)FROM SD_USR;
MYSQL:SELECT SUM(enable_flag)FROM SD_USR;
31 DBMS_OUTPUT.PUT_LINE(SQLCODE)在MYSQL中无相应的方法,其作用是在控制台中打印,用于测试,对迁移无影响.dbms_output.put_line每行只能显示255个字符,超过了就会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值