Olá,
Caso esteja recebendo uma exception parecida com a mostrada abaixo…

javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.portalfiscal.inf.br/nfe",
local:"inutNFe"). Expected elements are
<{http://www.w3.org/2000/09/xmldsig#}Signature>

… tente fazer o seguinte. Coloque essas anotações na ordem informando o namespace.

@XmlRootElement(name="inutNFe", namespace="http://www.portalfiscal.inf.br/nfe")
@XmlType(name = "TInutNFe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = {"infInut", "signature"})
@XmlAccessorType(XmlAccessType.FIELD)
public class TInutNFe {

Por aqui resolveu  :mrgreen:

Olá,

Estávamos convertendo um XML em Java Object normalmente com o trecho abaixo:

Object object = (JAXBElement<Object>) unmarsh.unmarshal(is);
object.getValue();

Depois de uma alteração passei a receber essa exception:

java.lang.ClassCastException: br.com.xxxx.nfe.beans.TInutNFe cannot be cast to javax.xml.bind.JAXBElement

A alteração foi incluir essa anotação na classe

@XmlRootElement(name="inutNFe", namespace="http://www.portalfiscal.inf.br/nfe")

Com isso a variável object é uma instância do bean e não de JAXBElement, dessa forma não é necessária fazer a chamada ao método getValue() na segunda linha.

Olá,

Alguns dias atrás eu estava emergencialmente procurando uma forma de enviar por email um arquivo zip que eu tinha na conta do dropbox, rapidamente eu abri o app do dropbox no iPhone, procurei o arquivo, selecionei ele e cliquei no botão de compartilhar e vi a opção Email (segundo botão), fiquei todo feliz 😀 . Mas…. 😥  ao tocar nele percebi que ele gera um link e coloca no corpo do email e não é isso que eu queria. Eu tinha que enviar o email com arquivo em anexo.

Eis que consegui fazer isso com esse workaround.

Continue lendo o artigo »

Boa noite,

Se ao enviar um email usando o comando do Oracle UTL_SMTP, o assunto do email está chegando aos destinatários sem respeitar a acentuação, insira o comando abaixo para informar ao cliente de email usar a codificação ISO-8859-1.

 UTL_SMTP.WRITE_DATA( w_conn,     'Subject: ' ||  '=?iso-8859-1?Q?' ||
 UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(i_subj))) ||
                                '?=' || UTL_TCP.CRLF);

Olá,

Pra que serve a cláusula returning?
Com a cláusula returning é possível retornar as linhas afetadas por operações DML.
Por exemplo, se você fizer um update e logo após precisar retornar as linhas que foram alteradas, é só usar a cláusula returning. Assim não precisa fazer um cursor.
Veja o exemplo abaixo:

Script da tabela:

create table EMPREGADO
(
ID_EMP NUMBER not null,
NOME_EMP VARCHAR2(100) not null,
DATA_ADMISSAO_EMP DATE not null
)

Código PL/SQL.

DECLARE

TYPE rec_emp IS RECORD (id_emp empregado.id_emp%type,
nome_emp empregado.nome_emp%type,
data_admissao_emp empregado.data_admissao_emp%type);

TYPE tb_emp IS TABLE OF rec_emp;

a_emp tb_emp;

marca_err number;
BEGIN
marca_err := '0';
insert into empregado emp values (1, 'Julia', sysdate)
returning emp.id_emp, emp.nome_emp, emp.data_admissao_emp bulk collect into a_emp;

marca_err := '1';
dbms_output.put_line('======= INSERT ========');
for i in a_emp.first..a_emp.last loop
dbms_output.put_line('ID: ' || a_emp(i).id_emp || ' - Nome: ' || a_emp(i).nome_emp || ' - Admissão: ' || a_emp(i).data_admissao_emp);
end loop;

marca_err := '2';
update empregado emp
set emp.nome_emp = upper(emp.nome_emp)
where emp.id_emp in (1,2)
returning emp.id_emp, emp.nome_emp, emp.data_admissao_emp bulk collect into a_emp;

marca_err := '3';
DBMS_OUTPUT.PUT_LINE('======= UPDATE ========');
for i in a_emp.first..a_emp.last loop
dbms_output.put_line('ID: ' || a_emp(i).id_emp || ' - Nome: ' || a_emp(i).nome_emp || ' - Admissão: ' || a_emp(i).data_admissao_emp);
end loop;

marca_err := '4';
delete from empregado emp
returning emp.id_emp, emp.nome_emp, emp.data_admissao_emp bulk collect into a_emp;

marca_err := '5';
DBMS_OUTPUT.PUT_LINE('======= DELETE ========');
for i in a_emp.first..a_emp.last loop
dbms_output.put_line('ID: ' || a_emp(i).id_emp || ' - Nome: ' || a_emp(i).nome_emp || ' - Admissão: ' || a_emp(i).data_admissao_emp);
end loop;

EXCEPTION
WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE('Erro na execução: ponto erro: ' || marca_err || ' - ' || SQLERRM);

END;

No exemplo acima demonstro a cláusula returning com as 3 operações (Insert, Update e Delete). No caso do insert o retorno será de apenas 1 linha, não precisava usar uma table mas para padronizar eu a usei.