Diferença entre CLOB e BLOB do DB2 e Oracle Perspective?

102

Tenho sido fascinado por esses dois tipos de dados. De acordo com o Oracle Docs , eles são apresentados da seguinte forma:

BLOB: string de objeto binário grande de comprimento variável que pode ter até 2 GB (2.147.483.647) de comprimento. Destina-se principalmente a conter dados não tradicionais, como voz ou mídia mista. As cadeias BLOB não estão associadas a um conjunto de caracteres, como acontece com as cadeias FOR BIT DATA.

CLOB: string de objeto grande de caracteres de comprimento variável que pode ter até 2 GB (2.147.483.647) de comprimento. Um CLOB pode armazenar cadeias de caracteres de um byte ou dados multibyte baseados em caracteres. Um CLOB é considerado uma cadeia de caracteres.

O que eu não sei é se há alguma diferença entre os dois da perspectiva do DB2 e do Oracle? Quer dizer, quais são as diferenças entre DB2 CLOB e Oracle CLOB, também entre DB2 BLOB e Oracle BLOB? Qual é o tamanho máximo de DB2 e Oracle? São apenas 2 GB?

O Cavaleiro das Trevas
fonte

Respostas:

40

Eles podem ser considerados equivalentes. Os limites de tamanho são os mesmos:

  • Comprimento máximo de CLOB (em bytes ou OCTETS)) 2 147 483 647
  • Comprimento máximo do BLOB (em bytes) 2 147 483 647

Existem também os DBCLOBs, para caracteres de byte duplo.

Referências:

AngocA
fonte
9
"Eles podem ser considerados equivalentes" em tamanho . O comportamento em diferentes tipos de dados contidos pode ser muito diferente e provavelmente deveria ter sido incluído em sua resposta. A dica está na primeira letra da sigla.
sublinhado_d
110

BLOB é para dados binários ( vídeos, imagens, documentos, outros )

CLOB é para dados de texto grandes ( texto )

Tamanho máximo no MySQL 2 GB

Tamanho máximo no Oracle 128TB

científico
fonte
2
Estou preocupado porque essa resposta tem relativamente menos reputação. Uma resposta perfeita e simples
sns
7
@sns porque esta é uma resposta muito tardia. A pergunta foi postada quase 4 anos atrás.
Moira
65

BLOBdestina-se principalmente a conter dados não tradicionais, como imagens, vídeos, voz ou mídia mista. CLOBdestina-se a reter dados baseados em caracteres.

Dnyaneshwar
fonte
4
A diferença é aparente quando você precisa recodificá-los ou transmiti-los. Objetos binários não devem ser traduzidos no transporte. Objetos de caracteres podem conter caracteres de largura mista. Objetos binários possivelmente não podem ser impressos. Todos os caracteres são binários, o inverso não é necessariamente verdadeiro depois que você sai do banco de dados, nem novamente ao sair da plataforma.
mckenzm