Ir para conteúdo
josePeixoto

Converter data do java para data Oracle

Recommended Posts

Olá a todos. Estou com um problema em converter a data do java para o formato da data do oracle.

Eis o meu código:

 

SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");

String dt_ini_orc = sdf.format(dt_ini);
String dt_fim_orc = sdf.format(dt_fim);

List<NotaFiscal> nf = nfs.retornaTodasNfPorData(dt_ini_orc, dt_fim_orc);

E a função que pega é:

 

public List<NotaFiscal> retornaTodasNfPorData(String dt_ini, String dt_fim) throws SQLException {
		List<NotaFiscal> lnf = new ArrayList<NotaFiscal>();
		Connection conn = null;
		PreparedStatement stmt = null;
		
		
		
		try {
			conn = getConnection();
			stmt = conn.prepareStatement(
					"select NR_SEQUENCIA, CD_NATUREZA_OPERACAO, cd_cgc_emitente, nr_sequencia, dt_emissao, "
							+ "vl_total_nota from nota_fiscal "
							+ "WHERE dt_emissao between to_date(?, 'dd/mm/yyyy') and to_date(?, 'dd/mm/yyyy')");
			
			stmt.setString(1, dt_ini);
			stmt.setString(2, dt_fim);
			
			
			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
				NotaFiscal nf = createNF(rs, conn);
				lnf.add(nf);
			}

			rs.close();
.
.
.

Dá o seguinte erro: java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(Unknown Source)

 

Alguém pode me ajudar informando onde está errado?

 

Obrigado desde já :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 horas atrás, josePeixoto disse:

NotaFiscal nf = createNF(rs, conn);

 

Você não postou o método "createNF"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Alexandre Garcia
      Olá,
       
      Estou precisando criar uma tabela que deve ser preenchida com os nomes dos arquivos do diretório $ORACLE_HOME/rdbms/admin
       
      Alguém teria alguma ideia de como posso fazer isso? Ou se isso é possível?
       
      Obrigado.
    • Por Marcos Vilela Alves
      Bom dia.
      meu caso é o seguinte. tenho um server sql Oracle onde tenho os dados.
      meu sistema web tem que conectar nesse server. ok. isso já foi feito, inclusive como SysDBA.
       
      sem me logar, varias consultas acontecem, e tem retorno.
       
      na tela de login que tudo enrola. 
      eu fiz a tela, e as autenticações corretamente. o sistema funciona, mas a query para consulta de usuario e senha, apesar de estar correta e no banco retornar dados, no php nao retorna nada. consulta, mas volta vazia.
      segue a consulta
      SELECT u.HANDLE , u.NOM_USUARIO , u.DSC_OBSERVACAO FROM BANCO.USUARIOS u WHERE u.NOM_USUARIO = 'MARCOS' AND u.NOM_SENHA = 'XXX000XXX' na base, meu usuario vem como retorno no php vem vazia. como se nao houvesse o dado na base.
       
      alguem sabe o pq?
       
    • Por Motta
      Alguém já passou por este problema ?

      Prezado(a)s : Ao enviar um email em HTML pelo package SMTP o Oracle coloca um espaço em branco no meio de uma palavra do nada ,

      algo como
      Oracle coloca um espaço
      fica
      Oracle colo ca um espaço
       
      SP de Envio
       
       
      Pesquisei alguns sites e vi relação com um buffer limitado a 1000 caracteres , não achei nenhum parâmetro para aumentar isto.

      Talvez a solução seja varrer o blob de 1000 em 1000 registros e tratar isto , pegar uma palavra no meio quando na posição 1000.
      create or replace PROCEDURE ENVIA_EMAIL_CLOBH (ds_email_origem_w varchar2, ds_email_destino_p varchar2, ds_assunto varchar2, p_attach_clob IN CLOB DEFAULT NULL, p_httm in varchar2 default 'S', p_log out varchar2, p_nome_destino in varchar2 default null) is l_step PLS_INTEGER := 900;--12000;-- make sure you set a multiple of 3 not higher than 24573 (doc Oracle) ds_smtp_w varchar2(20) := '......'; /* Abre conex?o SMTP e HTTP */ CONEXAO UTL_SMTP.CONNECTION; -- fixar este envio por segurança vs_origem varchar2(100) := ds_email_origem_w; -- vs_para varchar2(100); vs_cc varchar2(100); -- PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS BEGIN UTL_SMTP.WRITE_DATA(CONEXAO, name || ': ' || header || UTL_TCP.CRLF); END; BEGIN /* Abre conex?o com um Servidor SMTP(Simple Mail Transfer Protocol), porta padr?o SMTP e 25 */ CONEXAO := utl_smtp.open_connection (ds_smtp_w,25); UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereco do servidor de SMTP */ --utl_smtp.command (CONEXAO, 'AUTH LOGIN'); --utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_user_id_w))))); --UTL_SMTP.COMMAND (CONEXAO, UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW((DS_SENHA_SMTP_W))))); UTL_SMTP.MAIL (CONEXAO, ('<' || vs_origem || '>')); /* E-mail de quem esta mandando */ -- se estiver em lista separado por ";" manda para o 1º como "para" e para o 2º como CC (copia) /* Para quem vou mandar */ IF INSTR(ds_email_destino_p,';') = 0 THEN vs_para := ds_email_destino_p; UTL_SMTP.RCPT (CONEXAO, ('<' || ds_email_destino_p || '>')); /* Para quem vou mandar */ ELSE vs_para := SUBSTR(ds_email_destino_p,1,INSTR(ds_email_destino_p,';')-1); vs_cc := SUBSTR(ds_email_destino_p,INSTR(ds_email_destino_p,';')+1,length(ds_email_destino_p)); UTL_SMTP.RCPT (CONEXAO, ('<' || vs_para || '>')); /* Para quem vou mandar original */ UTL_SMTP.RCPT (CONEXAO, ('<' || vs_cc || '>')); /* Para quem vou mandar copia */ END IF; UTL_SMTP.OPEN_DATA(CONEXAO); If upper(p_httm) <> 'S' Then send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); Else send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))|| '?='); end if; If upper(p_httm) <> 'S' Then UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF); Else UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF ); end if; send_header('From',ds_email_origem_w); --se denominou o destino formata o envio , senão vai o proprio email --tratamento diferente do "from" pois este é em geral dinamico --feito pela stored procedure chamadora if trim(p_nome_destino) is null then send_header('To',vs_para); else send_header('To','"'||trim(p_nome_destino)||'" <'||vs_para||'>'); end if; If Trim(vs_cc) is not null Then--copia (nao formata o destino) send_header('CC',vs_cc); end if; FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) LOOP UTL_SMTP.WRITE_DATA(CONEXAO, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1)); END LOOP; UTL_SMTP.CLOSE_DATA(CONEXAO); UTL_SMTP.QUIT (CONEXAO); Exception when OTHERS then utl_smtp.quit (conexao); p_log := 'Erro: ' || SQLERRM; END ENVIA_EMAIL_CLOBH;

      A rotina do SMTP é basicamente a que a documentação do Oracle indica.
    • Por GudaEevSo
      Bom dia,
       
      Preciso fazer a soma da coluna QT_REAL onde a soma das linhas não podem passar um determinado valor (NR_CAMPO) . Essa soma deve ser feita validado o NR_CICLO, NR_OP, DS_NIVEL e CD_COR onde será agrupado as linhas até a QT_REAL for menor ou igual que o NR_CAMPO.
       
      Como está hoje:

       
      Como deveria ficar:

       
      Colunas da tabela:
      NR_CICLO,
      NR_OP,
      DS_NIVEL,
      NR_CAMPO = CAMPO LIMITADOR - QUANTIDADE DA COLUNA SOMADA NÃO PODE ULTRAPASSAR ESSE VALOR.
      CONT = NUMERO DE LINHAS
      CD_COR
      QT_REAL = QUANTIDADE A SER SOMADA.
    • Por Luis Felipe Rebecca
      Galera estou tendo um problema já faz algum tempo e não estou conseguindo uma solução.
       
      Estou utilizando o Firebase como banco de dados e não estou conseguindo usar a autenticação dele.
       
      Fiz meus códigos com auxilio de alguns cursos online e ele está funcional, aparentemente, porem quando executo e dou inicio no processo de cadastro ele mostra a seguinte mensagem no Logcat e não registra o usuário no banco:
       
      Alguém teria alguma solução? 
      06-26 07:21:39.348 29507-29507/br.com.tecmafandroid.projeto.tecmaf W/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@da4f097 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/GooglePlayServicesUtil: Google Play services out of date. Requires 12451000 but found 11975436 Não sei muito bem o q essa mensagem esta querendo dizer, já tentei modificar vários arquivos, mas por enquanto o "erro" persiste. 
       
      Segue os trechos de código responsáveis pela autenticação no Firebase:
       
      -Activity de cadastro usuário
      package br.com.tecmafandroid.projeto.tecmaf.activity; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import br.com.tecmafandroid.projeto.tecmaf.R; import br.com.tecmafandroid.projeto.tecmaf.config.ConfiguracaoFirebase; import br.com.tecmafandroid.projeto.tecmaf.model.Usuario; public class CadastroUsuarioActivity extends AppCompatActivity { private EditText nome; private EditText email; private EditText senha; private Button botaoCadastrar; private Usuario usuario; private FirebaseAuth autenticacao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cadastro_usuario); nome = (EditText) findViewById(R.id.edit_cadastro_nome); email = (EditText) findViewById(R.id.edit_cadastro_email); senha = (EditText) findViewById(R.id.edit_cadastro_senha); botaoCadastrar = (Button) findViewById(R.id.bt_cadastro); botaoCadastrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { usuario = new Usuario(); usuario.setNome(nome.getText().toString()); usuario.setEmail(email.getText().toString()); usuario.setSenha(senha.getText().toString()); cadastrarUsuario(); } }); } private void cadastrarUsuario() { autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao(); autenticacao.createUserWithEmailAndPassword( usuario.getEmail(), usuario.getSenha() ).addOnCompleteListener(CadastroUsuarioActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()){ Toast.makeText(CadastroUsuarioActivity.this,"Sucessor ao cadastrar usuario",Toast.LENGTH_LONG).show(); }else { Toast.makeText(CadastroUsuarioActivity.this,"Erro ao cadastrar usuario",Toast.LENGTH_LONG).show(); } } }); } } -build.gradle: app
      apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "br.com.tecmafandroid.projeto.tecmaf" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.google.firebase:firebase-database:15.0.0' implementation 'com.android.support:design:27.1.1' implementation 'com.github.rtoshiro.mflibrary:mflibrary:1.0.0' implementation 'com.google.firebase:firebase-auth:15.0.0' } apply plugin: 'com.google.gms.google-services' -Configuração do Firebase
      package br.com.tecmafandroid.projeto.tecmaf.config; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; public final class ConfiguracaoFirebase { private static DatabaseReference referenciaFirebase; private static FirebaseAuth autenticacao; public static DatabaseReference getFirebase(){ if (referenciaFirebase == null){ referenciaFirebase = FirebaseDatabase.getInstance().getReference(); } return referenciaFirebase; } public static FirebaseAuth getFirebaseAutenticacao(){ if (autenticacao == null){ autenticacao = FirebaseAuth.getInstance(); } return autenticacao; } } -Model usuário
      package br.com.tecmafandroid.projeto.tecmaf.model; public class Usuario { private String id; private String nome; private String email; private String senha; public Usuario(){ } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.