Como Pegar parte de um campo LONG?
29/11/2012
0
Preciso pegar parte de um campo do tipo LONG, pois o mesmo é muito grande.
Exemplo, mas que da erro:
SELECT SUBSTR(DESCRICAOCOMPLETA1,100) FROM CURSOS
No aguardo.
Marcoridolphi
Posts
29/11/2012
Claudia Nogueira
SELECT SUBSTR(DESCRICAOCOMPLETA,1,100) FROM CURSOS
Se não for isso, posta o erro exato.
29/11/2012
Marcoridolphi
Esse é o script
SELECT A.CHAPA, A.MES, A.ANO, SUBSTR(B.MENSAGEMERRO,1,100) AS TIPOLONG
FROM PFHSTPROV A
INNER JOIN PLOGFUNCIONARIO B ON B.EXECID = A.EXECIDFER
Abaixo o erro.
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
29/11/2012
Deivison Melo
select a.chapa, a.mes, a.ano, substr(cast (b.mensagemerro as varchar),1,100) as tipolong
from pfhstprov a
inner join plogfuncionario b on b.execid = a.execidfer
29/11/2012
Deivison Melo
select a.chapa, a.mes, a.ano, substr(to_char(b.mensagemerro),1,100) as tipolong
from pfhstprov a
inner join plogfuncionario b on b.execid = a.execidfer
ou ainda dá uma olhada aqui!!
http://glufke.net/oracle/viewtopic.php?t=3905
http://itknowledgeexchange.techtarget.com/itanswers/how-to-convert-long-to-clob-or-to-varchar-type-in-select-statement/
Funções de conversão:
http://psoug.org/reference/convert_func.html
Ainda tem esse tópico abaixo:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:839298816582
29/11/2012
Deivison Melo
declare
t_char varchar2(20);
begin
for cr in (select long_desc from table) loop
t_char := substr(cr.long_desc,1,20);
dbms_output.put_line(t_char);
end loop;
end;
29/11/2012
Marcoridolphi
Agora sobre esses scripts enviados, tenho que mudar alguma coisa, ou executo como esta?
29/11/2012
Deivison Melo
O bloco anônimo vc tem q trocar os campos dele pelos q está tentando converter...
Já leu todos os artigos e nenhum atendeu a vc?
29/11/2012
Deivison Melo
DECLARE
vlong LONG := '43702198ryiwqeyr2q93741234h12iu34y1o2iu34y128734123iu421hiu3';
vvar VARCHAR2(32767);
BEGIN
vvar := vlong;
dbms_output.put_line('Varchar2: '||vvar);
END;
29/11/2012
Marcoridolphi
Me ajude no seguinte,
Esse select aqui que eu preciso ver:
SELECT MENSAGEMERRO as CAMPOLONG
FROM PLOGFUNCIONARIO
Pode me ajudar como fazer?
01/08/2017
Carlos Cavalcanti
Preciso extrair uma informação de uma consulta SQL. Segue...
" SELECT CD_ATENDIMENTO, DS_INFO_ATENDIMENTO
FROM ATENDIME_INFO
WHERE DS_INFO_ATENDIMENTO LIKE '%ELETIVA%' "
-- A COLUNA DS_INFO_ATENDIMENTO É DO TIPO LONG
Ao colocar a Cláusula acima, Oracle retorna que esperava CHAR e obteve LONG.
Como posso contornar o problema?
Detalhe:
Conteúdo da coluna DS_INFO_ATENDIMENTO possui a seguinte informação abaixo:
" INTERNAÇÃO
1) TIPO DE INTERNAÇÃO: ( ) ELETIVA ( X ) URGÊNCIA ( ) 1° HORÁRIO
2) PERFIL: ( X ) CLÍNICA ( ) CIRÚRGICA ( ) OBSTÉTRICA
3) TUSS: 00021010X1
... "
07/08/2017
Jgsf
passo 1:
CREATE OR REPLACE FUNCTION "SEARCH_LONG" (r rowid) return varchar2 is
temporary_varchar varchar2(4000);
begin
select ai.ds_info_atendimento into temporary_varchar from dbamv.atendime_info ai where rowid=r;
return temporary_varchar;
end;
---
passo2: não esquecer de conceder grant de execução
GRANT EXECUTE ON "DBAMV"."SEARCH_LONG" TO "MV2000";
GRANT EXECUTE ON "DBAMV"."SEARCH_LONG" TO "MVINTEGRA";
---
Passo 2:usar a função a partir do select da view.
select ate.cd_atendimento,search_long(ainfo.rowid) ds_info_atendimentoselect
from atendime ate
,atendime_info ainfo
where ate.cd_atendimento = ainfo.cd_atendimento(+);
boa sorte..
Clique aqui para fazer login e interagir na Comunidade :)