Viva,
Preciso de pesquisar strings dentro de um campo LONG ou seja, fazer um select usando o LIKE.
É possivel fazer isso num campo LONG?
Desde já obrigado
Existe maneira de usar o LIKE num campo LONG?
-
- Rank: Programador Sênior
- Mensagens: 49
- Registrado em: Seg, 13 Out 2008 9:01 am
- Localização: Lisboa
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Não é possível, disparando um erro ORA-00932.
Inclusive é recomendado que não se use mais tipos LONG nas novas versões do Oracles pois esse será descontinuado. Substitua por BLOB se for viável e o VARCHAR2 não atendê-lo.
http://www.techonthenet.com/oracle/errors/ora00932.php
Inclusive é recomendado que não se use mais tipos LONG nas novas versões do Oracles pois esse será descontinuado. Substitua por BLOB se for viável e o VARCHAR2 não atendê-lo.
http://www.techonthenet.com/oracle/errors/ora00932.php
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
oh yeah, faz de conta que foi typo! 

- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Lembre-se que na DBMS_LOB tem algumas funções que podem ajudar, como DBMS_LOB.INSTR, DBMS_LOB.SUBSTR...
Essas podem "simular" um LIKE...
Essas podem "simular" um LIKE...
-
- Rank: Programador Sênior
- Mensagens: 49
- Registrado em: Seg, 13 Out 2008 9:01 am
- Localização: Lisboa
Viva de novo.
Passei o campo LONG para CLOB de forma a conseguir utilizar o like, mas agora necessitava de alterar de novo para LONG e não estou a conseguir.
A pergunta, existe maneira de passar um campo de CLOB para LONG?
Desde já obrigado.
Cumprimentos.
Passei o campo LONG para CLOB de forma a conseguir utilizar o like, mas agora necessitava de alterar de novo para LONG e não estou a conseguir.
A pergunta, existe maneira de passar um campo de CLOB para LONG?
Desde já obrigado.
Cumprimentos.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Fazer o Alter retornando creio não ser possível mesmo. Realizei uns testes aqui e não consegui.
Criá-lo como Long (Estou utilizando versão 9i) é possível sim, porém, depois de alterado, não consegue voltar ao datatype original.
Talvez seja alguma Feature da Oracle, que não permite mais utilizar este tipo de Dado em algumas versões de banco (precisaria dar uma pesquisada com mais calma).
Mas, pra ter essa certeza, fiz os testes abaixo:
Uma dica: Não sei da tua estrutura e da complexidade da tua tabela, mas, se OBRIGATÓRIAMENTE precisar deste tipo de dado novamente (conforme informado pelo Dr_Gori, se outros DATATYPES não satisfazer tua necessidade), dê um DROP na tua tabela (guardando as informações antes) e a recrie com este Datatype que provavelmente conseguirá.
Caso não possa dar um Drop na tabela, crie mais uma coluna nesta tabela, do tipo LONG, dê um Update dos valores do CLOB pro campo LONG e, depois drop essa coluna CLOB.
Fica ai a dica brother.
Qualquer coisa, manda ai pra gente.
Fazer o Alter retornando creio não ser possível mesmo. Realizei uns testes aqui e não consegui.
Criá-lo como Long (Estou utilizando versão 9i) é possível sim, porém, depois de alterado, não consegue voltar ao datatype original.
Talvez seja alguma Feature da Oracle, que não permite mais utilizar este tipo de Dado em algumas versões de banco (precisaria dar uma pesquisada com mais calma).
Mas, pra ter essa certeza, fiz os testes abaixo:
CREATE TABLE teste (cod NUMBER(10), descricao LONG);
SELECT *
FROM teste;
ALTER TABLE teste MODIFY descricao CLOB;
SELECT *
FROM teste;
ALTER TABLE teste MODIFY descricao LONG;
-- ORA-22859: invalid modification of columns
Caso não possa dar um Drop na tabela, crie mais uma coluna nesta tabela, do tipo LONG, dê um Update dos valores do CLOB pro campo LONG e, depois drop essa coluna CLOB.
Fica ai a dica brother.
Qualquer coisa, manda ai pra gente.
-
- Rank: Estagiário Júnior
- Mensagens: 2
- Registrado em: Qua, 30 Out 2019 3:07 pm
- Localização: Campinas/SP
Você pode criar uma função para converter o campo.
Depois usá-la na query:
CREATE OR REPLACE FUNCTION get_search_condition
(
p_owner all_constraints.owner%TYPE,
p_constraint_name all_constraints.constraint_name%TYPE
) RETURN VARCHAR2 IS
v_long LONG;
BEGIN
SELECT search_condition
INTO v_long
FROM all_constraints
WHERE constraint_name = p_constraint_name
AND owner = p_owner
AND constraint_type = 'C';
RETURN substr(v_long, 1, 32760);
END;
SELECT constraint_name,
get_search_condition(owner, constraint_name) AS search_condition
FROM all_constraints
WHERE owner = 'MYSCHEMA'
AND table_name = 'MYTABLENAME'
AND constraint_type = 'C'
AND get_search_condition(owner, constraint_name) = 'TEXT_SEARCH';
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Google [Bot] e 26 visitantes