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

CREATE EVENT - Scheduled Task İçindir

Örnek Şöyle yaparız CREATE EVENT myevent     ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR     DO       UPDATE myschema.mytable SET myc...