Oracle SQL'de bir hücreye 4000 karekterden fazla veri yazmayı istiyorsanız kolon tipi olarak CLOB kullanmalısınız. VARCHAR2 ve benzeri kolonlara maximum 4000 karekter veri yazabilirsiniz. 4000 karekterden uzun veriyi tabloya yazmayı denediğinizde aşağıdaki gibi bir hata alırsınız.
General Exception: ORA-01704: string literal too long
Bu hatayı almanız, veritabanına yazmak istediğiniz verinin uzunluğunun veritabanı tarafından desteklenmeyen bir değere ulaştığı anlamına gelir. Oracle veritabanında, bir string literal'in maksimum uzunluğu 4000 karakterdir. Eğer veritabanına yazmak istediğiniz veri bu uzunluğu aşıyorsa, CLOB veri tipi kullanmanız gerekir. GENIS_KOLON isimli CLOB Kolon aşağıdaki gibi oluşturulabilir.
( "NORMAL_KOLON" VARCHAR2(200),
"GENIS_KOLON" CLOB
);
import cx_Oracle
# Veritabanı bağlantısının açılması
conn = cx_Oracle.connect("username/password@hostname:port/sid")
# Veritabanı işlemleri için bir cursor oluşturulması
cursor = conn.cursor()
# Veriyi içeren değişken
long_data = "Long data here..." * 1000
# Veritabanı tablosuna veri yazma
cursor.execute("""
INSERT INTO table_name (column_name)
VALUES (:data)
""", data=cx_Oracle.CLOB(long_data))
# Değişikliklerin veritabanına kaydedilmesi
conn.commit()
# Bağlantının kapatılması