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

EXPLAIN FORMAT

Örnek Şöyle yaparız > EXPLAIN FORMAT=JSON INTO @myselect   SELECT name FROM a WHERE id = 2; Query OK, 0 rows affected (0.00 sec) ​ > S...