sql >> Database >  >> RDS >> Oracle

Oracle JDBC-tekenset en limiet van 4000 tekens

Voorafgaand aan Oracle 12.1, een VARCHAR2 kolom is beperkt tot het opslaan van 4000 bytes aan gegevens in de database-tekenset, zelfs als deze is gedeclareerd VARCHAR2(4000 CHAR) . Aangezien elk teken in uw tekenreeks 2 bytes aan opslagruimte vereist in de UTF-8-tekenset, kunt u niet meer dan 2000 tekens in de kolom opslaan. Dat aantal zal natuurlijk veranderen als sommige van je karakters eigenlijk maar 1 byte aan opslagruimte nodig hebben of als sommige meer dan 2 bytes aan opslagruimte nodig hebben. Als de databasetekenset Windows-1252 is, heeft elk teken in uw tekenreeks slechts één byte opslagruimte nodig, zodat u 4000 tekens in de kolom kunt opslaan.

Aangezien je langere strings hebt, zou het dan mogelijk zijn om de kolom te declareren als een CLOB in plaats van als een VARCHAR2 ? Dat zou (effectief) de lengtebeperking verwijderen (er is een limiet op de grootte van een CLOB dat hangt af van de Oracle-versie en de blokgrootte, maar het is in ieder geval in het bereik van meerdere GB).

Als u Oracle 12.1 of hoger gebruikt, is de max_string_size parameter stelt u in staat om de maximale grootte van een VARCHAR2 kolom van 4000 bytes tot 32767 bytes .



  1. Hoe krijg ik een lijst met vergrendelde gebruikers in een Oracle-database?

  2. hoe de waarde van het selectievakje op te slaan in de mysql-database met behulp van php

  3. WordPress WorkFlow-aanpassingen

  4. Start mysql opnieuw op in de php-browser, probleem met machtigingen?