Aprenda PL/SQL

Este tutorial mostra como instalar o Apex 4.1 no Oracle XE. Aí vai um passo a passo:

1 – Baixar e instalar Oracle XE

Download nesse link: http://www.oracle.com/technetwork/database/express-edition/overview/index.html

Leia mais…




Participei do GUOB TECH DAY 2011 e posso dizer: Foi um evento memorável! Resolvi colocar aqui a opinião de algumas pessoas que participaram! Então, aí vai:

GUOB Tech Day


Leia mais…




Neste artigo irei apresentar um recurso muito bom que existe no Oracle Database desde a versão 9i e chama-se Pipelined Table Function.

Este recurso permite criar funções que retornam dados como se fossem uma tabela virtual, podendo transformar os dados de retorno enquanto eles são produzidos, ou seja, é possível alterar os dados pesquisados em uma tabela, linha por linha, enquanto eles são processados, sem ter que esperar pelo retorno completo do “result set” (conjunto de dados que são retornados pela função).

Este recurso é ótimo para ETL (Extract, Transform, and Load), pois é rápido e consome menos memória que outros métodos que podem ser utilizados para o mesmo objetivo, como por exemplo, preencher um cursor e percorrê-lo para transformar e retornar dados.

Seguem abaixo 3 scripts que demonstram como criar e testar uma Pipelined Table Function. Os scripts utilizam a tabela EMPLOYEES do schema de exemplo HR.

Para iniciar o passo-a-passo dos itens abaixo, é necessário conectar-se previamente no Banco de Dados desejado, através do SQL Plus, com um usuário com privilégios administrativos (usuário contendo a role DBA ou o privilégio de sistema SYSDBA) ou com o usuário HR.

1- Criando a package HR.PKG_TYPES

A package HR.PKG_TYPES contém os tipos de dados que são criados para retornarem uma tabela virtual na função que será criada no próximo passo:

create or replace package HR.PKG_TYPES as
  TYPE TABLEEMPTYPE IS TABLE OF EMPLOYEES%ROWTYPE;
  TYPE ROWEMPTYPE IS RECORD(
          EMPLOYEE_ID    EMPLOYEES.EMPLOYEE_ID%TYPE,
          FIRST_NAME     EMPLOYEES.FIRST_NAME%TYPE,
          LAST_NAME      EMPLOYEES.LAST_NAME%TYPE,
          EMAIL          EMPLOYEES.EMAIL%TYPE,
          PHONE          EMPLOYEES.PHONE_NUMBER%TYPE,
          HIRE_DATE      EMPLOYEES.HIRE_DATE%TYPE,
          JOB_ID         EMPLOYEES.JOB_ID%TYPE,
          SALARY         EMPLOYEES.SALARY%TYPE,
          COMMISSION_PCT EMPLOYEES.COMMISSION_PCT%TYPE,
          MANAGER_ID     EMPLOYEES.MANAGER_ID%TYPE,
          DEPARTMENT_ID  EMPLOYEES.DEPARTMENT_ID%TYPE
         );
END;
/


Leia mais…




O site glufke.net possui alguns livros que estão no acervo e vão ser sorteados para os seguidores do twitter!

Estes serão os livros sorteados:

SORTEIO ENCERRADO – LISTA DOS GANHADORES
Dia 13/08/2010 – Guia Novatec – Oracle 10g SQL – GANHADOR: @garcia_joao
Dia 20/08/2010 – Guia Novatec – Cascading Style Sheets – GANHADOR: @marcelo_hugo
Dia 27/08/2010 – Guia Novatec – Java 2 – GANHADOR: @stefandeckert
Dia 03/09/2010 – Guia Novatec – JavaServer Pages – GANHADOR: @jeroqueiroz
Dia 10/09/2010 – Livro Programação de Jogos com C++ e DirectX – GANHADOR: @anitokj

Como Participar?

1. Para concorrer você deve seguir no twitter o @glufke

2. Enviar a seguinte mensagem:

Quero participar do sorteio de livros de oracle, java, etc do @glufke – http://bit.ly/cMIzSV

3. Aguardar o sorteio nos dias acima ao MEIO DIA!

Normas

1. O Sorteio se dará de forma aleatória para todos que estão seguindo @glufke e deram RT na mensagem.
2. O vencedor será contatado via twitter e será solicitado o endereço para enviar o livro.
3. O envio do livro será pago pelo GLUFKE.NET via encomenda registrada

Qualquer dúvida, envie para o twitter @glufke

BOA SORTE E BONS ESTUDOS




Este artigo demonstra como criar Concurrents no Oracle EBS com saída para Microsoft Excel. Aí vai um passo a passo:

1 – Adicionar o tipo de saída Microsoft Excel

Na responsabilidade Administrador de Sistema você deve acessar o caminho abaixo:
Instalar -> Idiomas
Insira um registro com estes valores:
Formato do Arquivo = Text
Tipo de Mime = application/vnd.ms-excel
Descrição = Microsoft Excel

Leia mais…




A maioria das pessoas tem essas perguntas sobre Index Partition:

  • O que é um Local Index?
  • O que é um Global Index?
  • Quando você forçaria a criação de um Global Index em uma partition table?
  • Quando você recomendaria criar um Global Index em vez de um Local Index?

Para responder a essas perguntas….

1. O que é um Local Index?

Local Indexes particionados são mais fáceis de gerenciar, cada partição do Local Index está associado a uma partição. Eles também oferecem maior disponibilidade e são comuns em ambientes de DSS. Quando tomamos qualquer ação (MERGE, SPLIT,EXCHANGE etc) em um Local Index, isso impacta apenas aquela partição e as outras estarão disponíveis. Nós não podemos adicionar explicitamente um Local Index para uma nova partição. O Local Index será adicionado implicitamente a nova partição, quando for criada uma nova partição na tabela. Da mesma forma, não podemos dropar o índice local em uma partição específica. Ele pode ser dropado automaticamente quando nós dropamos a partição da tabela subjacente. Local Indexes podem ser UNIQUE quando a chave da partição é parte do índice composto. Unique Local Indexes são úteis para o ambiente OLTP. Podemos também criar bitmap indexes em tabelas, com a restrição de que os índices de bitmap deve ser local para a tabela particionada. Eles não podem ser Global Indexes.

SQL> CREATE TABLE employees
2 (employee_id NUMBER(4) NOT NULL,
3 last_name VARCHAR2(10),
4 department_id NUMBER(2))
5 PARTITION BY RANGE (department_id)
6 (PARTITION employees_part1 VALUES LESS THAN (10) TABLESPACE ODS_STAGE_DATA,
7 PARTITION employees_part2 VALUES LESS THAN (20) TABLESPACE ODS_STAGE_DATA,
8 PARTITION employees_part3 VALUES LESS THAN (30) TABLESPACE ODS_STAGE_DATA);

Table created.

SQL> declare
2 v_no number :=1;
3 begin
4 delete employees;
5 for i in 1..10 loop
6 insert into employees values(v_no,'name...',v_no);
7 v_no := v_no+1;
8 end loop;
9 end;
10 /

PL/SQL procedure successfully completed.

SQL>
SQL> create index idx_local on employees(last_name) local;

Index created.

SQL>


Leia mais…




Iniciando a categoria “Fun-Stuff”, trazemos a você a revelação do ano: Larry Ellison é o Ironman.

Você pensou que o Iron Man era mesmo o bilionário industrial Tony Stark, temos provas de que isso é apenas um apelido mal disfarçado do magnata bilionário da Oracle, Larry Ellison. A prova:

Larry Ellison – Oracle:

Tony Stark – Ironman

Tony Stark tem o ROSTO do Larry, a VOZ do Larry, os CARROS do Larry, o DINHEIRO de Larry e os AVIÕES também. Pra completar a lista de evidências, temos a Oracle como um dos principais patrocinadores do filme:

Está comprovado!




Eu considero Edition-Based Redefinition a nova característica mais matadora do Oracle Database 11g Release 2. Em suma, é a capacidade de executar uma atualização de aplicações online. É também um recurso gigante, tão grande que vai demorar pelo menos três colunas para descrevê-lo. Vou começar em Como usar Edition-Based Redefinition afim de aplicar “patches” em sistemas.

Ao longo dos anos, o banco Oracle permite realizrmos muitas operações online, como:

  • Modificar a maioria dos parâmetros (Apenas 90 dos 350 não são modificáveis online.)
  • Reorganização de objetos (transformar uma tabela não particionada em uma particionada, recuperando um espaço livre, e assim por diante)
  • Criar índices
  • Aplicação de patches no Banco de dados com o Oracle Real Application Clusters
  • Atualizar o banco de dados Oracle de release em release

O resultado é que quase todas mudanças em nível de banco de dados pode ser feito enquanto o banco está funcionando e realizando transações – com algumas raras excepções gritantes, como re-criar uma procedure, alterar triggers, adicionar grants, revoke de grant, e modificar views. Em suma, os objetos que constituem esse tipo de modificação não podiam ser modificadas, enquanto os usuários estavam utilizando. Se uma procedure estava sendo executada e um DBA tentou atualizar ela (CREATE OR REPLACE o código com o novo código mexido, afim de corrigir um bug), o DBA iria ficar esperando (BLOCKED) por essa pessoa até terminar sua execução.

Além disso, qualquer pessoa que tentou posteriormente executar uma procedure que o DBA está tentando substituir também ficaria bloqueado pelo DBA. E na maioria dos casos, o DBA não modifica apenas uma única procedure, mas muitas,  e o CREATE OR REPLACE do novo código da procedure tenderia a invalidar outros objetos dependentes também. O banco de dados parece “congelar”, o DBA não pode realizar as tarefas de patch (substituir alguns procedimentos, pacotes, views, triggers, e assim por diante), e os usuários finais não podem realizar as suas tarefas. Eles acabaram bloqueando e travando-se mutuamente.

Isto tudo termina tudo com o Oracle Database 11g Release 2 e o Edition-Based Redefinition, que permite aos DBAs e usuários finais acessar mais de uma ocorrência de uma stored procedure, trigger, view, e outros objetos e, portanto, isolar as mudanças em um esquema. Começando com o Oracle Database 11g Release 2, um único esquema pode agora ter duas ou mais ocorrências (vamos pensar em “versões”) de um stored procedure (função, trigger, e assim por diante) ou uma view ou de sinônimos e todos seus metadados relacionados, tais como GRANTS a esses objetos. (Estas duas ocorrências são independentes, eles coexistem, mas não interferem umas com as outras.) A “mágica” que permite isso é o novo objeto de edição (EDITION),  que introduz um novo namespace transparente que permite mais de uma ocorrência ao mesmo tempo de uma stored procedure, trigger e assim por diante.
Leia mais…




MS Excel usa um formato de data chamado “Serial Date format” ao armazenar e lidar com datas e horas. A “Data serial” é calculada pegando o número de dias entre uma data qualquer e o dia 01/01/1900.

Por que isso é importante para um desenvoledor Oracle ? Se você está criando um documento em PL/SQL que será aberto no Excel, a data ficará incorreta a não ser que você converta antes para o padrão do Excel.

Felizmente, a formula de conversão de datas é muito simples. A seguinte função fará a conversão de uma data no Oracle para o padrão do Excel:

CREATE OR REPLACE FUNCTION convertOracleToSerialDate(p_date DATE) RETURN NUMBER
IS
BEGIN
RETURN (p_date – TO_DATE(’01-JAN-1900?))+2;
END;
/


Leia mais…




Aplicativos Oracle para iPhone

18/11/2009 | Tags:, , , | Categories: ERP

Oracle iPhone Apps

Oracle Business Indicators é um aplicativo de B.I. que provê informações em tempo real, com acesso seguro sobre performance no iPhone.

Oracle Business Approvals for Managers permite que gerentes e executivos revisem tarefas chaves, acessem relatórios de B.I., tomem decisões e levem imediatamente as ações ao ambiente em modo seguro.

Oracle iReceipts é uma aplicação que é parte do Oracle PeopleSoft Expenses, que permite aos usuários criar e submeter despesas para transações de caixa em tempo real..

Oracle Mobile Sales Assistant é uma aplicação CRM que trás informação em tempo real segura que sua emprea precisa no aparelho móvel. Tarefas frequentes, colaboração com colegas e compradores, fechar negócios na estrada.

Oracle Mobile Sales Forecast é um aplicativo fácil de usar que mostra em tempo real uma visibilidade de oportunidade para organização.

Oracle Enterprise Asset Maintenance Workbench é um aplicativo que ajuda o departamento de manutenção a aumentar sua produtividade. A aplicação ajudará os engenheiros de campo e trabalhadores a tirar vantagem do GPS que o iPhone possui.
Leia mais…