Seguindo uma sugestão feita para outra pergunta para armazenar grandes quantidades de texto: pode-se usar um CLOB como campo de chave primária (ou seja, da implementação DataNucleus de JDO do Java)?
Sei que provavelmente é uma péssima ideia usar um CLOB como chave, mas preciso usar um texto grande como chave em uma operação única.
A versão simples seria gerar um hash do CLOB e usá-lo como uma chave. Esta chave caberá na largura de chave permitida para o seu mecanismo (900 SQL Server, 767 InnoDB, 1000 MyISAM etc).
O hash pode ser gerado pelo mecanismo como uma coluna computada, gatilho ou por algum processo ETL ou pelo aplicativo
Há uma pequena chance de colisão ( problema de aniversário ), mas isso só importaria para muitos registros e má escolha do algoritmo de hash