HI,
Muito bom esse recurso do Oracle. Implementei hoje uma rotina de envio de e-mail. Pedi pro DBA liberar as permissões. Criei a procedure para enviar o e-mail e outra procedure para pegar os usuários e disparar o e-mail para cada um.
Só enfrentei um problema. Não estava mantendo a acentuação. Mas com uma busca no google encontrei a solução. Pra considerar a acentuação tem que usar o comando UTL_SMTP.WRITE_RAW_DATA(v_mail_conn, UTL_RAW.CAST_TO_RAW(UTL_TCP.CRLF || p_mensagem)); ao invés de utilizar UTL_SMTP.WRITE_DATA(v_mail_conn, UTL_TCP.CRLF || p_mensagem);
Segue os links que utilizei.
Como resolver problema de acentuação usando utl_smtp?
http://glufke.net/oracle/viewtopic.php?t=4670
Email From Oracle PL/SQL (UTL_SMTP)
http://www.oracle-base.com/articles/misc/email-from-oracle-plsql.php
RES: [oracle_br] Enviar e-mail pelo Oracle com Con teúdo HTML
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/msg16433.html
Fiquem na Paz!!!!
Mostrando postagens com marcador oracle. Mostrar todas as postagens
Mostrando postagens com marcador oracle. Mostrar todas as postagens
quinta-feira, julho 11, 2013
quarta-feira, agosto 01, 2012
Executando um loop entre uma diferença de datas no Oracle
HI,
Vou precisar criar uma procedure para inserir/atualizar dados de acordo com um período informado. Se for para inserir, criar um registro para cada data do período informado.
Ex: Período de 01/06/2012 à 03/06/2012, taxa 5%
Quando for inserir, a procedure vai criar 3 registros na tabela
01/06/2012 - 5
02/06/2012 - 5
03/06/2012 - 5
Antes de partir para a procedure, criei a lógica que vou precisar.
declare
data_inicial date;
data_final date;
num_dias number;
begin
data_inicial := to_date('10/06/2012','DD//MM/YYYY');
data_final := to_date('20/06/2012','DD//MM/YYYY');
dbms_output.put_line( 'data inicial: ' || to_char(data_inicial,'DD/MM/YYYY'));
dbms_output.put_line( 'data final: ' || to_char(data_final,'DD/MM/YYYY'));
num_dias := (data_final - data_inicial)+1;
dbms_output.put_line( 'dias: ' || num_dias);
dbms_output.put_line( '' );
for i in 1..num_dias loop
dbms_output.put_line( 'data: ' || to_char((data_inicial-1)+i,'DD/MM/YYYY') || ', dia ' || i);
end loop;
end;
Resultado da execução da instrução pl/sql
Vou precisar criar uma procedure para inserir/atualizar dados de acordo com um período informado. Se for para inserir, criar um registro para cada data do período informado.
Ex: Período de 01/06/2012 à 03/06/2012, taxa 5%
Quando for inserir, a procedure vai criar 3 registros na tabela
01/06/2012 - 5
02/06/2012 - 5
03/06/2012 - 5
Antes de partir para a procedure, criei a lógica que vou precisar.
declare
data_inicial date;
data_final date;
num_dias number;
begin
data_inicial := to_date('10/06/2012','DD//MM/YYYY');
data_final := to_date('20/06/2012','DD//MM/YYYY');
dbms_output.put_line( 'data inicial: ' || to_char(data_inicial,'DD/MM/YYYY'));
dbms_output.put_line( 'data final: ' || to_char(data_final,'DD/MM/YYYY'));
num_dias := (data_final - data_inicial)+1;
dbms_output.put_line( 'dias: ' || num_dias);
dbms_output.put_line( '' );
for i in 1..num_dias loop
dbms_output.put_line( 'data: ' || to_char((data_inicial-1)+i,'DD/MM/YYYY') || ', dia ' || i);
end loop;
end;
Resultado da execução da instrução pl/sql
Nesse endereço tem informações sobre loop no oracle
Fiquem na Paz!!!
terça-feira, junho 26, 2012
Update a partir de uma select no Oracle
HI,
Passei a vida toda apenas utilizando o select/insert para popular uma tabela a partir do resultado de uma consulta. Mas ontem precisei além de inserir, também atualizar. Não queria executar a query duas vezes para fazer isso, um select/insert para inserir e um loop em outra query para atualizar.
Sabia que no MySql tem esse recurso de inserir se não existir, e se existir, atualizar. Então fui perguntar ao Google como fazer isso no Oracle. Descobri que existe o comando MERGE, que serviria para o meu propósito.
Comando MERGE
http://psoug.org/reference/merge.html
Agora vou relatar os problema que enfrentei para conseguir executá-lo.
Eu modifiquei a procedure e passou a ocorrer esse erro: ORA-00918: column ambiguously.
Passei um bom tempo para achar esse erro, já que analisando a query não via nenhum problema aparente já que todos os campos estavam precedidos por aliases. Ex:. a.id = b.id.
Pesquisando no google vi que o problema era a repetição de um campo na select. É que antes no select/insert, existiam dois campos que recebiam o mesmo valor: Insert into teste(id, viagens1, viagens2) select id, viagens, viagens from teste2.
Foi aqui que achei a solução para o problema ORA-00918: column ambiguously no MERGE
https://forums.oracle.com/forums/thread.jspa?messageID=10327846
Outro problema que enfrentei foi esse: ORA-30926: unable to get a stable set of rows in the source tables.
No teste para identificar se o registro existe ou não, coloquei apenas 1 campo e minha chave primaria possui 3 campos.
Achei a solução aqui
http://stackoverflow.com/questions/2337271/ora-30926-unable-to-get-a-stable-set-of-rows-in-the-source-tables
Um outro erro que acontece é se colocar um campo da chave primaria no update para ser atualizado.
Fiquem na Paz!!!
Passei a vida toda apenas utilizando o select/insert para popular uma tabela a partir do resultado de uma consulta. Mas ontem precisei além de inserir, também atualizar. Não queria executar a query duas vezes para fazer isso, um select/insert para inserir e um loop em outra query para atualizar.
Sabia que no MySql tem esse recurso de inserir se não existir, e se existir, atualizar. Então fui perguntar ao Google como fazer isso no Oracle. Descobri que existe o comando MERGE, que serviria para o meu propósito.
Comando MERGE
http://psoug.org/reference/merge.html
Agora vou relatar os problema que enfrentei para conseguir executá-lo.
Eu modifiquei a procedure e passou a ocorrer esse erro: ORA-00918: column ambiguously.
Passei um bom tempo para achar esse erro, já que analisando a query não via nenhum problema aparente já que todos os campos estavam precedidos por aliases. Ex:. a.id = b.id.
Pesquisando no google vi que o problema era a repetição de um campo na select. É que antes no select/insert, existiam dois campos que recebiam o mesmo valor: Insert into teste(id, viagens1, viagens2) select id, viagens, viagens from teste2.
Foi aqui que achei a solução para o problema ORA-00918: column ambiguously no MERGE
https://forums.oracle.com/forums/thread.jspa?messageID=10327846
Outro problema que enfrentei foi esse: ORA-30926: unable to get a stable set of rows in the source tables.
No teste para identificar se o registro existe ou não, coloquei apenas 1 campo e minha chave primaria possui 3 campos.
Achei a solução aqui
http://stackoverflow.com/questions/2337271/ora-30926-unable-to-get-a-stable-set-of-rows-in-the-source-tables
Um outro erro que acontece é se colocar um campo da chave primaria no update para ser atualizado.
Fiquem na Paz!!!
quinta-feira, abril 26, 2012
Erro ORA-06502 usando function do Oracle no Asp.Net
HI,
Mais um erro que deu um pouco de trabalho.
Ao chamar uma function do oracle que retorna um valor string deu o erro ORA-06502. Já tinha usando uma que retornava um valor do tipo data e não deu problema nenhum.
Recorrendo ao google, encontrei essa solução:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small – Solution
http://maniish.wordpress.com/2007/05/16/ora-06502-plsql-numeric-or-value-error-character-string-buffer-too-small-solution/
Foi só definir o tamanho Size do parâmetro de retorno que ficou beleza.
command.Parameters.Add(new OracleParameter("valor_config", OracleDbType.Varchar2, ParameterDirection.ReturnValue));
command.Parameters["valor_config"].Size = 100;
Fiquem na Paz!!!
Mais um erro que deu um pouco de trabalho.
Ao chamar uma function do oracle que retorna um valor string deu o erro ORA-06502. Já tinha usando uma que retornava um valor do tipo data e não deu problema nenhum.
Recorrendo ao google, encontrei essa solução:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small – Solution
http://maniish.wordpress.com/2007/05/16/ora-06502-plsql-numeric-or-value-error-character-string-buffer-too-small-solution/
Foi só definir o tamanho Size do parâmetro de retorno que ficou beleza.
command.Parameters.Add(new OracleParameter("valor_config", OracleDbType.Varchar2, ParameterDirection.ReturnValue));
command.Parameters["valor_config"].Size = 100;
Fiquem na Paz!!!
quarta-feira, abril 25, 2012
Autonomous Transactions - ORACLE
HI,
Ontem precisei criar uma trigger que de acordo com determinada condição iria provocar um raise_application_error e com isso abortar o processo de um sistema web adquirido aqui na empresa que trabalho.
Como a mensagem de erro desse raise não estava sendo exibida para o usuário, resolvi criar uma tabela de log para gravar um registro quando acontecesse esse erro. Percebi que mesmo desabilitando o comando raise, estava provocando erro na aplicação web, então deduzi que seria o COMMIT para salvar os dados dessa tabela de log.
Fui pesquisar como realizar esse commit sem afetar a transação da aplicação web. Foi aí que descobrir esse tal de Autonomous Transactions.
Autonomous Transactions
http://www.oracle-base.com/articles/misc/autonomous-transactions.php
Implementei uma procedure para gravar o registro e ficou na medida usando esse recurso de transação autônoma.
Para maiores informações tem esse site aqui.
http://pscoliveira.blogspot.com.br/2007/11/autonomous-transactions.html
Tem uma dica aqui de como criar a sua exceção
http://stackoverflow.com/questions/6020450/oracle-pl-sql-raise-user-defined-exception-with-custom-sqlerrm
Fiquem na Paz!!!!
PS: De acordo com contador do blog esse é o Post de número 200. Ebaaaaaaaaaa!!!!!!
Ontem precisei criar uma trigger que de acordo com determinada condição iria provocar um raise_application_error e com isso abortar o processo de um sistema web adquirido aqui na empresa que trabalho.
Como a mensagem de erro desse raise não estava sendo exibida para o usuário, resolvi criar uma tabela de log para gravar um registro quando acontecesse esse erro. Percebi que mesmo desabilitando o comando raise, estava provocando erro na aplicação web, então deduzi que seria o COMMIT para salvar os dados dessa tabela de log.
Fui pesquisar como realizar esse commit sem afetar a transação da aplicação web. Foi aí que descobrir esse tal de Autonomous Transactions.
Autonomous Transactions
http://www.oracle-base.com/articles/misc/autonomous-transactions.php
Implementei uma procedure para gravar o registro e ficou na medida usando esse recurso de transação autônoma.
Para maiores informações tem esse site aqui.
http://pscoliveira.blogspot.com.br/2007/11/autonomous-transactions.html
Tem uma dica aqui de como criar a sua exceção
http://stackoverflow.com/questions/6020450/oracle-pl-sql-raise-user-defined-exception-with-custom-sqlerrm
Fiquem na Paz!!!!
PS: De acordo com contador do blog esse é o Post de número 200. Ebaaaaaaaaaa!!!!!!
segunda-feira, abril 09, 2012
Obter o retorno de uma procedure do oracle através de parâmetro no C#
HI,
Estava precisando obter a matrícula de um usuário que foi criado no banco de dados, para exibir em um dialogo no navegador.
Já sabia como receber o resultado de uma query para exibir em um grid, por exemplo, utilizando procedure, mas obter apenas um valor, ainda não.
Achei essa dica aqui sobre o assunto
Getting values back from Oracle Procedures in C# .Net
http://csharpdeveloper.wordpress.com/2009/01/14/getting-values-back-from-oracle-procedures-in-c-net/
Nessa dica também tem como pegar o resultado de uma função do Oracle.
Fiquem na Paz!!!
Estava precisando obter a matrícula de um usuário que foi criado no banco de dados, para exibir em um dialogo no navegador.
Já sabia como receber o resultado de uma query para exibir em um grid, por exemplo, utilizando procedure, mas obter apenas um valor, ainda não.
Achei essa dica aqui sobre o assunto
Getting values back from Oracle Procedures in C# .Net
http://csharpdeveloper.wordpress.com/2009/01/14/getting-values-back-from-oracle-procedures-in-c-net/
Nessa dica também tem como pegar o resultado de uma função do Oracle.
Fiquem na Paz!!!
segunda-feira, fevereiro 27, 2012
Obter o valor da sequence gerada ao inserir um registro no oracle.
HI,
Acabei de aprender isso e já estou disponibilizando aqui.
Situação:
Criei uma procedure para chamar duas outras procedures. Uma cria o registro Pai e a outra o registro Filho.
Eu tinha que passar o código do registro Pai para a procedure dois.
Antes tinha resolvido isso armazenando o valor da sequence em uma variável e depois passava para as duas procedures, ficando assim:
create or replace procedure INSERIR_MSG_USUARIO(pusr_id number,
ptitulo varchar2, pmensagem varchar2, pcod_sistema number)
is
seq number := 0;
begin
select cam_nrid.nextval into seq from dual;
inserir_campanha('MENSAGEM AUTOMÁTICA AO USUÁRIO',
ptitulo, pmensagem, pcod_sistema, seq);
inserir_registro_envio(seq, pusr_id, sysdate);
end;
Acabei de aprender isso e já estou disponibilizando aqui.
Situação:
Criei uma procedure para chamar duas outras procedures. Uma cria o registro Pai e a outra o registro Filho.
Eu tinha que passar o código do registro Pai para a procedure dois.
Antes tinha resolvido isso armazenando o valor da sequence em uma variável e depois passava para as duas procedures, ficando assim:
create or replace procedure INSERIR_MSG_USUARIO(pusr_id number,
ptitulo varchar2, pmensagem varchar2, pcod_sistema number)
is
seq number := 0;
begin
select cam_nrid.nextval into seq from dual;
inserir_campanha('MENSAGEM AUTOMÁTICA AO USUÁRIO',
ptitulo, pmensagem, pcod_sistema, seq);
inserir_registro_envio(seq, pusr_id, sysdate);
end;
Essa procedure é só para exemplificar.
Pesquisando no google achei como obter o código da sequence na clausula INSERT, e retornar o seu valor através de um parâmetro do tipo OUT.
Obtendo o valor da Sequence
Retornado um valor através da procedure
Usando o returning não precisei mais dessa linha: select cam_nrid.nextval into seq from dual;
Espero que possa ser útil.
Fiquem na Paz!!!
quarta-feira, janeiro 25, 2012
Erro Oracle + Windows Forms
HI,
Hoje fiz meu primeiro programa em Windows Forms Application (será que vou abandonar o Delphi 7, hehehe?).
E é um programa pra valer, não é teste de aprendizado. E tinha que acessar o Oracle.
Só que ao executar um select, deu o seguinte erro: System.IO.FileNotFoundException was unhandled oracle
Achei a solução aqui
https://forums.oracle.com/forums/thread.jspa?threadID=696384
A solução é essa
This issue occurs when your on a 64bit version of Windows. Change the target CPU in to x86 and things work fine.
ou seja: vai em propriedades do projeto, opção Build, e altera a propriedade Plataform target para x86
Fiquem na Paz!!!
Hoje fiz meu primeiro programa em Windows Forms Application (será que vou abandonar o Delphi 7, hehehe?).
E é um programa pra valer, não é teste de aprendizado. E tinha que acessar o Oracle.
Só que ao executar um select, deu o seguinte erro: System.IO.FileNotFoundException was unhandled oracle
Achei a solução aqui
https://forums.oracle.com/forums/thread.jspa?threadID=696384
A solução é essa
This issue occurs when your on a 64bit version of Windows. Change the target CPU in to x86 and things work fine.
ou seja: vai em propriedades do projeto, opção Build, e altera a propriedade Plataform target para x86
Fiquem na Paz!!!
terça-feira, janeiro 10, 2012
Exibir uma foto armazenada no oracle em um site asp.net
HI,
Precisei aprender isso hoje.
Pegar a foto de um cadastro e exibir na página. As imagens encontram-se armazenadas no banco de dados.
Consegui usando esses códigos
Insert /retrieve an image into/ from a blob field in Oracle database using C#.Net
http://www.codeproject.com/KB/database/Blobfield.aspx
Aconteceu esse erro: Não foi possível localizar uma parte do caminho
Achei a solução nesse forum
http://www.devmedia.com.br/forum/net/398027-Upload-Com-Asp-Net-C.html
Usei o this.Server.MapPath para gravar corretamente a imagem em disco para poder exibir no componente Image.
Fiquem na Paz!!!!
Precisei aprender isso hoje.
Pegar a foto de um cadastro e exibir na página. As imagens encontram-se armazenadas no banco de dados.
Consegui usando esses códigos
Insert /retrieve an image into/ from a blob field in Oracle database using C#.Net
http://www.codeproject.com/KB/database/Blobfield.aspx
Aconteceu esse erro: Não foi possível localizar uma parte do caminho
Achei a solução nesse forum
http://www.devmedia.com.br/forum/net/398027-Upload-Com-Asp-Net-C.html
Usei o this.Server.MapPath para gravar corretamente a imagem em disco para poder exibir no componente Image.
Fiquem na Paz!!!!
segunda-feira, julho 11, 2011
Abreviando nome no Oracle
HI,
Para melhorar a comparação entre um nome digitando com um armazenado no banco, resolvi utilizar uma função para auxiliar. Dei preferência por essa que retorna apenas o primeiro e último nome. Assim se tiver armazenado abreviado, não tem problema. Não se trata de uma comparação crítica, é para validar a abertura de uma conta aonde o usuário precisa acertar um documento de identificação, a data de nascimento e o nome da mãe.
Código da função
CREATE OR REPLACE FUNCTION abrevia_nome (pValue IN VARCHAR2)
RETURN VARCHAR2 IS
nome VARCHAR2(100);
Saida VARCHAR2(2000);
BEGIN
nome := pValue;
SELECT SubStr(nome, 1, INSTR(UPPER(NOME), ' ')) ||
REVERSE(Trim(SubStr(REVERSE(nome), 1, INSTR(UPPER(REVERSE(NOME)), ' ')))) INTO saida FROM dual;
RETURN Nvl(Saida, pValue);
END; -- Funcao abrevia_nome
Para melhorar a comparação entre um nome digitando com um armazenado no banco, resolvi utilizar uma função para auxiliar. Dei preferência por essa que retorna apenas o primeiro e último nome. Assim se tiver armazenado abreviado, não tem problema. Não se trata de uma comparação crítica, é para validar a abertura de uma conta aonde o usuário precisa acertar um documento de identificação, a data de nascimento e o nome da mãe.
Código da função
CREATE OR REPLACE FUNCTION abrevia_nome (pValue IN VARCHAR2)
RETURN VARCHAR2 IS
nome VARCHAR2(100);
Saida VARCHAR2(2000);
BEGIN
nome := pValue;
SELECT SubStr(nome, 1, INSTR(UPPER(NOME), ' ')) ||
REVERSE(Trim(SubStr(REVERSE(nome), 1, INSTR(UPPER(REVERSE(NOME)), ' ')))) INTO saida FROM dual;
RETURN Nvl(Saida, pValue);
END; -- Funcao abrevia_nome
achei ela aqui
Fiquem na Paz!!!!
sábado, março 21, 2009
Retornar a data do primeiro e do último dia da semana
HI,
Estou trabalhando em uma rotina para enviar a rota da semana para os vendedores. Minha idéia foi de enviar todos os registros da semana, e não apenas do dia atual até o último dia da semana.
Então como fazer para enviar os registros que estão entre Domingo e Sábado ?
Abrir o delphi e fiz um algotimo para pegar a data do primeiro dia (Domingo) da semana e do último (Sábado) dia.
Ficou assim:
procedure TForm1.BitBtn1Click(Sender: TObject);
Var DiaSemanaHoje : Byte;
begin
DiaSemanaHoje := DayOfWeek(Date());
Edit2.Text := DateToStr(Date() - (DiaSemanaHoje - 1));
Edit3.Text := DateToStr(Date() + (7 - DiaSemanaHoje));
end;
Preciso utiliza isso no Oracle. Então lá vou eu para a home page do banco de dados (utilizo o oracle express aqui no note).
Peguei o exemplo que se encontra aqui no blog para pegar o dia da semana e bolei essa Sql:
select SYSDATE AS HOJE,
SYSDATE - (to_char(SYSDATE, 'D') - 1) AS DOMINGO,
SYSDATE + (7 - to_char(SYSDATE, 'D')) AS SABADO
from dual
Pronto. Já posso trabalhar com essa lógica no Where.
Mas aí achei um jeito mais simples, hehehe.
Pegar pelo dia da semana no ano.
Então o Where vai ficar assim (Delphi):
Sql.Add('Where to_char(SYSDATE, ''WW'') = ' + IntToStr(WeekOfTheYear(Date)));
Espero que possa ajudar mais alguém com isso.
[editando]
Mostrei esse código a um amigo que é DBA e ele me mostrou outra maneira de pegar as datas do primeiro e último dia da semana utilizando a função do NEXT_DAY do Oracle.
select sysdate AS HOJE ,
TRUNC(next_day(sysdate,'MONDAY')-8) as DOMINGO,
TRUNC(next_day(sysdate,'SATURDAY')) as SABADO
from dual
Acabei utilizando essa lógina no meu Where. É que pegando a semana do Ano deu bug, hehehe. Não retornou a Segunda e a Terça.
Where TRUNC(Data) BetWeen TRUNC(next_day(sysdate,'MONDAY')-8) and TRUNC(next_day(sysdate,'SATURDAY'))
Esse TRUNC é para retornar a data sem a parte da hora.
[/editando]
Até +
Estou trabalhando em uma rotina para enviar a rota da semana para os vendedores. Minha idéia foi de enviar todos os registros da semana, e não apenas do dia atual até o último dia da semana.
Então como fazer para enviar os registros que estão entre Domingo e Sábado ?
Abrir o delphi e fiz um algotimo para pegar a data do primeiro dia (Domingo) da semana e do último (Sábado) dia.
Ficou assim:
procedure TForm1.BitBtn1Click(Sender: TObject);
Var DiaSemanaHoje : Byte;
begin
DiaSemanaHoje := DayOfWeek(Date());
Edit2.Text := DateToStr(Date() - (DiaSemanaHoje - 1));
Edit3.Text := DateToStr(Date() + (7 - DiaSemanaHoje));
end;
Preciso utiliza isso no Oracle. Então lá vou eu para a home page do banco de dados (utilizo o oracle express aqui no note).
Peguei o exemplo que se encontra aqui no blog para pegar o dia da semana e bolei essa Sql:
select SYSDATE AS HOJE,
SYSDATE - (to_char(SYSDATE, 'D') - 1) AS DOMINGO,
SYSDATE + (7 - to_char(SYSDATE, 'D')) AS SABADO
from dual
Pronto. Já posso trabalhar com essa lógica no Where.
Mas aí achei um jeito mais simples, hehehe.
Pegar pelo dia da semana no ano.
Então o Where vai ficar assim (Delphi):
Sql.Add('Where to_char(SYSDATE, ''WW'') = ' + IntToStr(WeekOfTheYear(Date)));
Espero que possa ajudar mais alguém com isso.
[editando]
Mostrei esse código a um amigo que é DBA e ele me mostrou outra maneira de pegar as datas do primeiro e último dia da semana utilizando a função do NEXT_DAY do Oracle.
select sysdate AS HOJE ,
TRUNC(next_day(sysdate,'MONDAY')-8) as DOMINGO,
TRUNC(next_day(sysdate,'SATURDAY')) as SABADO
from dual
Acabei utilizando essa lógina no meu Where. É que pegando a semana do Ano deu bug, hehehe. Não retornou a Segunda e a Terça.
Where TRUNC(Data) BetWeen TRUNC(next_day(sysdate,'MONDAY')-8) and TRUNC(next_day(sysdate,'SATURDAY'))
Esse TRUNC é para retornar a data sem a parte da hora.
[/editando]
Até +
segunda-feira, março 02, 2009
Formatação de Datas no Oracle
Dica para formatar uma data no Oracle.
AM - AM ou PM
CC - Século
D - Dia da semana (1-7)
DAY - Dia da semana ('SUNDAY')
DD - Dia do mês (1-31)
DDD - Dia do ano
DY - Dia da semana abreviado ('SUN')
FM - Tira os blanks ou Zeros da esquerda
HH - Hora do dia (0-12)
HH24 - Hora do dia (0-24)
MI - Minutos da Hora
MM - Mês com 2 dígitos
MON - Mês abreviado ('NOV')
MONTH - Mês por extenso ('NOVEMBER')
PM - AM ou PM
RR - Ano com 2 dígitos - especial
RRRR - Ano com 4 dígitos
SS - Segundos do minuto(0 - 59)
SSSSS- Segundos do dia
W - Semana do Mês
WW - Semana do Ano
YEAR - Ano por extenso
YY - Ano com 2 dígitos
YYYY - Ano com 4 dígitos
Achei essa dica quando precisei semana passada pegar o dia da semana, para determinar se era dia útil, sábado ou domingo.
Exemplo: select to_char(SYSDATE, 'D') from dual
Até Mais.
AM - AM ou PM
CC - Século
D - Dia da semana (1-7)
DAY - Dia da semana ('SUNDAY')
DD - Dia do mês (1-31)
DDD - Dia do ano
DY - Dia da semana abreviado ('SUN')
FM - Tira os blanks ou Zeros da esquerda
HH - Hora do dia (0-12)
HH24 - Hora do dia (0-24)
MI - Minutos da Hora
MM - Mês com 2 dígitos
MON - Mês abreviado ('NOV')
MONTH - Mês por extenso ('NOVEMBER')
PM - AM ou PM
RR - Ano com 2 dígitos - especial
RRRR - Ano com 4 dígitos
SS - Segundos do minuto(0 - 59)
SSSSS- Segundos do dia
W - Semana do Mês
WW - Semana do Ano
YEAR - Ano por extenso
YY - Ano com 2 dígitos
YYYY - Ano com 4 dígitos
Achei essa dica quando precisei semana passada pegar o dia da semana, para determinar se era dia útil, sábado ou domingo.
Exemplo: select to_char(SYSDATE, 'D') from dual
Até Mais.
domingo, agosto 26, 2007
Mais Bancos di Grátis
Quando eu tava procurando material sobre o Oracle 10g, acabei descobrindo que a IBM também lançou as versão freeware do DB2, e lembrei que a Microsoft já tinha disponibilizado uma versão freeeware do SQL Server
Downloads
DB2 Express-C
SQL Server 2005 Express Edition
Mais detalhes nesse artigo do IDG Now!
Falows
----
Data Original: 2006-02-10 2:17:21 am
Marcadores:
db2,
download,
freeware,
oracle,
sql server
Oracle 10g di grátis
Essa versão freeware do Oracle veio em boa hora, tou precisando fazer uma aplicação minha conectar no Oracle. Poderia até instalar um pirata aqui, mas freeware é bem melhor, é só para desenvolver mesmo.
Limitações:
Máximo de 4G e 1Gb de Ram, mesmo que você tenha 10 giga de memória ram.
Download -> Oracle 10g Express Edition
Descrição na Página da Info
A versão gratuita do banco de dados da Oracle oferece interfaces SQL e PL/SQL, além de ter suporte à linguagens como Java, .NET e PHP. O Database XE traz também o recurso Oracle HTML DB, que fornece um rápido desenvolvimento e implementação de aplicativos da web. O banco de dados está disponível para os sistemas operacionais Linux e Windows de 32 bits. A versão gratuita armazena, no máximo, 4GB de informação e trabalha no limite de 1GB de memória RAM.
Falows
----
Data Original: 2006-02-10 1:40:23 am
Limitações:
Máximo de 4G e 1Gb de Ram, mesmo que você tenha 10 giga de memória ram.
Download -> Oracle 10g Express Edition
Descrição na Página da Info
A versão gratuita do banco de dados da Oracle oferece interfaces SQL e PL/SQL, além de ter suporte à linguagens como Java, .NET e PHP. O Database XE traz também o recurso Oracle HTML DB, que fornece um rápido desenvolvimento e implementação de aplicativos da web. O banco de dados está disponível para os sistemas operacionais Linux e Windows de 32 bits. A versão gratuita armazena, no máximo, 4GB de informação e trabalha no limite de 1GB de memória RAM.
Falows
----
Data Original: 2006-02-10 1:40:23 am
Assinar:
Postagens (Atom)