Comparaison des différences MySQL et Oracle trois fonctions
Fonction
Numéro Catégorie ORACLE MYSQL Commentaire
1 Fonction numérique round(1.23456,4) round (1.23456,4) Identique à :
ORACLE : sélectionnez la valeur round(1.23456,4) dans dual
MYSQL : sélectionnez la valeur round(1.23456,4)
2 abs(-1) abs( -1) Fonction : Prendre la valeur absolue des données actuelles
Utilisation : L'utilisation d'Oracle et de MySQL est la même
mysql : sélectionnez la valeur abs(-1)
Oracle : sélectionnez abs(-1) valeur de dual
3 ceil(-1.001)) plafond(-1.001) Fonction : Renvoie le plus petit entier pas inférieur à X
Utilisation :
mysqls : sélectionnez plafond(-1.001) value
oracle : sélectionnez la valeur ceil(-1.001) dans dual
4 floor(-1.001) floor(-1.001) Fonction : renvoie la valeur entière maximale non supérieure à X
Utilisation :
mysql : sélectionnez la valeur plancher (-1,001)
Oracle : sélectionnez la valeur plancher (-1,001) à partir de dual
5 Max(expr)/Min(expr) Max (expr)/Min(expr) Fonction : Renvoie la valeur minimale ou maximale de expr. MIN() et MAX() peuvent accepter un argument de chaîne ; dans ce cas, ils renverront la plus petite ou la plus grande chaîne transmise.
Utilisation :
ROACLE : sélectionnez max(user_int_key) depuis sd_usr ;
MYSQL : sélectionnez max(user_int_key) depuis sd_usr
Utilisation :
mysql:select ascii('a') value
oracle:select ascii('a') value from dual
7 CHAR(N,...) CHAR(N,...) Fonction : CHAR() interprète les paramètres en type entier et renvoie les caractères composés des caractères
Utilisation :
mysql:select char(97) value
oracle:select chr(97) value from dual
8 REPLACE( str,from_str,to_str) REPLACE(str,from_str,to_str) Fonction : Toutes les occurrences de la chaîne from_str dans la chaîne str sont remplacées par to_str, puis la chaîne est renvoyée
mysql : Valeur SELECT REPLACE ('abcdef', 'bcd', 'ijklmn')
oracle : SELECT Replace('abcdef', 'bcd', 'ijklmn') valeur de dual
9 INSTR('sdsq','s',2) INSTR('sdsq','s') Le nombre de paramètres est différent
MYSQL : sélectionnez la valeur INSTR('sdsq','s') (démarrer à partir de la position par défaut 1)
10 SUBSTR('abcd', 2,2) sous-chaîne ('abcd',2,2) Les noms de fonctions sont différents :
MYSQL : sélectionnez la sous-chaîne('abcd', 2,2) value
11 instr('abcdefg','ab') Locate('ab','abcdefg') Les noms de fonctions sont différents :
ORACLE: SELECT instr('abcdefg', 'ab') VALUE FROM DUAL
MYSQL: SELECT locate('ab', 'abcdefg') VALUE
12 length (str ) char_length() les noms de fonctions sont différents :
MYSQL : SELECT char_length('AAAASDF') VALUE
13 REPLACE('abcdef', 'bcd', 'ijklmn') REPLACE('abcdef', 'bcd', 'ijklmn') Identique à :
MYSQL : SELECT REPLACE('abcdef', 'bcd', 'ijklmn') valeur
14 LPAD('abcd',14, '0') LPAD( 'abcd',14, '0') Identique à :
MYSQL : sélectionnez LPAD('abcd',14, '0 ') valeur de dual
15 UPPER (iv_user_id) UPPER(iv_user_id) Identique à :
MYSQL : sélectionnez UPPER(user_id) dans sd_usr ; 🎜>
16 LOWER(iv_user_id) LOWER(iv_user_id) Identique à :
ORACLE : sélectionnez LOWER(user_id) dans sd_usr ;
MYSQL : sélectionnez LOWER(user_id) dans sd_usr
17 Flux de contrôle ; function nvl(u.email_address, 10) IFNULL(u.email_address, 10)
ou
ISNULL(u.email_address) Les noms des fonctions sont différents (sélectionnez en fonction des différentes fonctions) :
ORACLE : sélectionnez u. email_address, valeur nvl(u.email_address, 10) de sd_usr u (Si u.email_address=NULl, remplacez sa valeur par 10 dans DB)
MYSQL : sélectionnez u.email_address, valeur IFNULL(u.email_address, 10) de sd_usr u(si u.email_address=NULl, le résultat affiché est 10 au lieu de remplacer sa valeur par 10 dans DB)
sélectionnez u.email_address, ISNULL(u.email_address) valeur de sd_usr u(if u. If email_address est NULL, il affichera 1
18 DECODE(iv_sr_status,g_sr_status_com, ld_sys_date, NULL) Aucun, veuillez utiliser l'instruction IF ou CASE à la place.
IF Format de l'instruction : (expr1, expr2, expr3) Description :
1. décoder (condition, valeur 1, valeur de traduction 1, valeur 2, valeur de traduction 2,... valeur n, valeur de traduction n, valeur par défaut)
La signification de cette fonction est la suivante :
Condition SI = valeur 1 ALORS
RETOUR (valeur de traduction 1)
Condition ELSIF = valeur 2 ALORS
RETOUR (valeur de traduction 2)
. .. ...
Condition ELSIF = valeur n THEN
RETURN (valeur de traduction n)
ELSE
RETURN (valeur par défaut)
END IF
2. syntaxe Description
Fonction : Si expr1 est VRAI (expr1 <> 0 et expr1 <> NULL), la valeur de retour de IF() est expr2
sinon la valeur de retour est expr3; La valeur de retour de IF() est une valeur numérique ou une valeur de chaîne, selon le contexte
.
Utilisation :
mysql : SELECT IF(1>2,2,3);
19 Fonction de conversion de type TO_CHAR(SQLCODE) date_format/ time_format Les noms des fonctions sont différents
SQL> ; sélectionnez to_char(sysdate,'yyyy-mm-dd') depuis dual;
SQL> sélectionnez to_char(sysdate,'hh24-mi-ss') depuis dual;
mysql> ' %Y-%m-%d');
mysql> select time_format(now(),'%H-%i-%S');
20 to_date(str,format) STR_TO_DATE ( str,format) Les noms de fonctions sont différents :
ORACLE : SELECT to_date('2009-3-6','aaaa-mm-jj') VAULE FROM DUAL
MYSQL : SELECT STR_TO_DATE('2004-03- 01' , '%Y-%m-%d') VAULE
21 trunc(-1.002) cast(-1.002 as SIGNED) Le nom de la fonction est différent :
La valeur de la date tronquée par le TRUNC fonction pour l'élément spécifié.
ORACLE : sélectionnez la valeur trunc(-1.002) dans dual
MYSQL : sélectionnez la valeur cast(-1.002 comme SIGNÉ)
MYSQL :
Conversion du jeu de caractères : CONVERTIR(xxx USING gb2312)
type La conversion est la même que SQL Server, mais les paramètres de type sont un peu différents : CAST(xxx AS type), CONVERT(xxx, type), le type doit utiliser les types suivants :
Types disponibles
Binaire, avec effet de préfixe binaire : BINARY
Type de caractère, peut prendre des paramètres : CHAR()
Date : DATE
Heure : TIME
Type de date et d'heure : DATETIME
Virgule flottante number : DECIMAL
Entier : SIGNÉ
Entier non signé : UNSIGNED
22 TO_NUMBER(str) CAST("123" AS SIGNED INTEGER) Les noms de fonctions sont différents
ORACLE:SELECT TO_NUMBER('123 ') AS VALUE FROM DUAL ;
MYSQL : SELECT CAST("123" AS SIGNED INTEGER) comme valeur ;
SIGNED INTEGER : entier signé
23 Fonction de date SYSDATE now() / SYSDATE() Différentes méthodes d'écriture :
ORACLE:select SYSDATE value from dual
MYSQL:select now() value
select sysdate() value
24 Next_day(sysdate,7) Personnaliser une fonction : F_COMMON_NEXT_DAY (date,int) Les noms de fonctions sont différents :
ORACLE : SELECT Next_day(sysdate,7) value FROM DUAL
MYSQL : SELECT F_COMMON_NEXT_DAY(SYSDATE(), 3) value from DUAL;
(3 : fait référence à la valeur d'index de la semaine) return La date spécifiée qui suit immédiatement la semaine suivante
25 ADD_MONTHS(sysdate, 2) DATE_ADD(sysdate(), interval 2 Month) Les noms de fonctions sont différents :
ORACLE : SELECT ADD_MONTHS(sysdate, 2) comme valeur de DUAL;
MYSQL : SELECT DATE_ADD(sysdate(), interval 2 Month) comme valeur de DUAL
26 Soustraire 2 dates (D1-D2) DATEDIFF(date1,date2) Fonction : Renvoie le nombre de jours entre deux dates.
Utilisation :
mysql : SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
oracle : soustrayez directement deux dates (telles que d1-d2=12.3 )
27 Fonction SQL SQLCODE Il n'y a pas de fonction correspondante dans MYSQL, mais SQLException dans JAVA. La fonction getErrorCode() peut obtenir le numéro d'erreur. Les fonctions intégrées d'Oracle SQLCODE et SQLERRM sont spécialement utilisées dans le processeur OTHERS pour renvoyer respectivement le code d'erreur et le message d'erreur d'Oracle.
MYSQL : Vous pouvez obtenir le code d'erreur, l'état d'erreur et le message d'erreur de JAVA
28 SQLERRM Il n'y a pas de fonction correspondante dans MYSQL, mais SQLException dans JAVA. La fonction getMessage() peut obtenir le message d'erreur. Les fonctions intégrées d'Oracle SQLCODE et SQLERRM sont spécialement utilisées dans le processeur OTHERS pour renvoyer respectivement le code d'erreur et le message d'erreur d'Oracle.
MYSQL : Vous pouvez obtenir le code d'erreur, l'état d'erreur et le message d'erreur à partir de JAVA
29 SEQ_BK_DTL_OPT_INT_KEY.NEXTVAL Colonne à croissance automatique Il s'agit d'une colonne à croissance automatique dans MYSQL La méthode suivante est utilisée pour obtenir. le dernier identifiant :
START TRANSACTION ;
INSERT INTO user(username,password)
VALUES (username,MD5(password));
SELECT LAST_INSERT_ID() INTO id;
COMMIT
30 SUM(enable_flag ) SUM(enable_flag) Identique à :
ORCALE : SELECT SUM(enable_flag) FROM SD_USR;
MYSQL : SELECT SUM(enable_flag) FROM SD_USR
31 DBMS_OUTPUT.PUT_LINE(SQLCODE) dans MYSQL Aucun La méthode correspondante consiste à imprimer dans la console à des fins de test et n'a aucun impact sur la migration. dbms_output.put_line ne peut afficher que 255 caractères par ligne. Si cela dépasse, une erreur sera signalée