15 Kasım 2021 Pazartesi

Oracle Migration

Giriş
Bazı sütunlar farklı.

JDBC
Unique key ihlali varsa ORA-00001 alırız. MySQL'de hata 1062.  com.mysql.cj.exceptions.MysqlErrorNumbers.ER_DUP_ENTRY ile erişilebilir

CLOB
Oracle CLOB yerine LONGTEXT kullandım

Sütun İsmi Olarak "KEY"
Oracle'da sütun ismi olarak KEY kullanılabilir ancak MySQL için bu keyword. Sütun isimleri backtick ile escape edilebilir. Ancak farklı bir sütun ismi kullanmak daha mantıklı

NUMBER
Tablo burada
Oracle:   NUMBER(19,0) MySQL : BIGINT
Oracle:   NUMBER(10,0) MySQL : INTEGER veya INT
Oracle:   NUMBER(7,0)  MySQL : MEDIUMINT
Oracle:   NUMBER(5,0)  MySQL : SMALLINT
Oracle:   NUMBER(3,0)  MySQL : TINYINT
TIMESTAMP
Oracle : TIMESTAMP(6) DEFAULT SYS_EXTRACT_UTC(SYSTIMESTAMP)                             
Oracle açısından SYSTIMESTAMP veri tabanının çalıştığı işletim sisteminin saatidir
 
MySQL : TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP
MySql 8.0.13'ten sonra şöyle yapabiliriz
MySQL : TIMESTAMP(6) DEFAULT (UTC_TIMESTAMP)
VARCHAR2
Oracle: VARCHAR2(4)
MySQL : VARCHAR(4)
TO_CHAR
Oracle:  TO_CHAR          (CALLSETUPTIME, 'YYYY-MM-DD HH24:MI:SS')
MySQL: DATE_FORMAT(CALLSETUPTIME, '%Y-%m-%d %H:%i:%s')


Hiç yorum yok:

Yorum Gönder

LIMIT ve Covering Index + Subquery

Örnek Şöyle yaparız SELECT t1.name, t1.age, t1.gender, t1.create_time FROM student as t1    INNER JOIN     (SELECT id FROM student ORDER BY ...