Como criar um campo autoincremental no Oracle PL/SQL

O Oracle não tem campos auto incrementais, para simular esta funcionalidade é necessário criar “Sequences”:

CREATE SEQUENCE seqFuncionarios
INCREMENT BY 1
START WITH 1
MAXVALUE 99999
NOCACHE
NOCYCLE;

Para utilizar, a cada linha adicionada ele irá aumentar em 1 (INCREMENT BY 1) o valor desta “sequence”.

INSERT INTO FUNCIONARIOS (ID, NOME) VALUES (seqFuncionarios.nextVal; 'João');
INSERT INTO FUNCIONARIOS (ID, NOME) VALUES (seqFuncionarios.nextVal; 'Roberto');

João terá ID igual a 1 (START WITH 1) e Roberto terá o ID igual a 2 (INCREMENT BY 1: 1 + 1 = 2).

ORA-01830: a imagem do formato da data termina antes de converter a string de entrada inteira

ORA-01830: a imagem do formato da data termina antes de converter a string de entrada inteira
01830. 00000 -  "date format picture ends before converting entire input string"
*Cause:    
*Action:

Causa 01: Você deve estar utilizando uma data inválida. Exemplo: 31/06/2016 (Quando o mês em 2016 vai até dia 30);

Como parar e iniciar um serviço do Windows através da linha de comando?

Estava procurando uma forma automatizada de parar dois serviços de um sistema que utilizo no trabalho para que fosse possível realizar o backup de seus dados de forma segura.

Criei então dois arquivos batchs:

Um arquivo para parar o serviços (Arquivo: StopSIPREV.bat):

@echo off
net stop "Postgresql SIPREVv1"
net stop "SIPREVASv1"

Um arquivo para reiniciar os serviços (Arquivo: StartSIPREV.bat):

@echo off
net start "Postgresql SIPREVv1"
net start "SIPREVASv1"

Criando múltiplos Virtual Hosts no XAMPP

Ao tentar criar múltiplos virtual hosts no XAMPP eu sempre tinha o mesmo problema: qualquer um dos domínios que eu utilizasse, o Apache redirecionava apenas para a mesma pasta.

O que acontece é que qualquer erro que seja encontrado em um arquivo, o Apache utiliza a pasta do primeiro Virtual Host como padrão. Então para que isso não ocorra, siga este passo-a-passo:

1 – Edite seu arquivos de hosts, para que ao acessar o domínio o navegador seja redirecionado para seu endereço IP. Este arquivo poderá ser encontrado no endereço “C:\Windows\System32\drivers\etc\hosts”. siga o exemplo abaixo:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1	dominio1.com.br
127.0.0.1	www.dominio1.com.br
127.0.0.1	dominio2.com.br
127.0.0.1	www.dominio2.com.br

Agora, é necessário modificar o arquivo de configurações do XAMPP que estará na pasta C:\xampp\apache\conf\extra\httpd-vhosts.conf

Siga o exemplo abaixo:

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

NameVirtualHost 127.0.0.1:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
    ServerName default
    DocumentRoot "C:\xampp\htdocs"
    ErrorLog "logs/default-error.log"
    CustomLog "logs/default-access.log" common
    <Directory "C:\xampp\htdocs">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dominio1.com.br
    ServerAlias www.dominio1.com.br
    DocumentRoot "C:\xampp\htdocs\dominio1.com.br"
    ErrorLog "logs/dominio1-error.log"
    CustomLog "logs/dominio1-access.log" common
    <Directory "C:\xampp\htdocs\dominio1.com.br">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dominio2.com.br
    ServerAlias www.dominio2.com.br
    DocumentRoot "C:\xampp\htdocs\dominio2.com.br"
    ErrorLog "logs/dominio2-error.log"
    CustomLog "logs/dominio2-access.log" common
    <Directory "C:\xampp\htdocs\dominio2.com.br">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

3 – Crie as pastas “C:\xampp\htdocs\dominio1.com.br” e “C:\xampp\htdocs\dominio2.com.br” – Dentro delas ficarão os arquivos de cada um de seus sites.

4 – Inicie o Apache.

Observação 01: Este arquivo foi escrito levando em consideração os diretórios padrão de instalação do Windows (c:\windows) e do XAMPP (C:\xampp)

Observação 02: Nunca se esqueça de adicionar os comandos NameVirtualHost e a sub-tag Directory, estes erros são um dos maiores motivos para criar o problema do único redirecionamento.

Observação 03: Verifique a direção das barras, isso pode causar o mesmo erro citado acima, siga o exemplo.

Como realizar o emparelhamento Bluetooth do controle Ípega PG-9028 com o Windows 10

Para conseguir jogar utilizando um controle sem fio em seu PC, a primeira coisa que você precisa fazer é comprar um Adaptador USB para Bluetooth, caso seu notebook ou PC já não tenha um.

A instalação destes Dongles são muito simples: basta plugá-los e o Windows instalará os drivers genéricos para Bluetooth ao reconhecê-los.

Mas calma, para utilizar o controle, será necessário realizar uma atividade chamada emparelhamento/pareamento. Para realizá-la, clique com o botão direito no ícone do Bluetooth no systray da sua barra de tarefas do Windows 10.

image

Selecione a opção “Adicionar um dispositivo Bluetooth” para abrir a tela abaixo:

image

Esta tela sempre permanecerá procurando por novos dispositivos Bluetooth para realizar a conexão;

Assim, ligue seu joystick: segurando botão “X”, aperte o botão “Home”. Ele será ligado e o LED “Search” ficará piscando.

Volte a tela do Windows 10 e você verá um novo dispositivo com o texto “Pronto para emparelhar”:

image

Clique no item “PG-9028” e selecione a opção “Emparelhar”. Aparecerá uma janela de senha. Digite “0000” e clique em avançar.

image

O Windows iniciará o emparelhamento e instalará alguns drivers do novo dispositivo.

Agora, o LED “Search” de seu controle deixará de piscar e ficará permanentemente aceso, o que significa que ele está pronto para ser utilizado. Isto pode ser observado na tela de gerenciamento de dispositivos Bluetooth: aparecerá que o PG-9028 está conectado:

image

Pronto! Você já pode utilizar seu Joystick. Lembre-se que, caso utilize-o em emuladores, é necessário ativar o gamepad nas configurações e selecionar quais teclas serão acessadas para cada botão no controle.

Testei com sucesso no SNES9x e no ZSNESW.

O que significa o Erro 0756 no Oracle Reports 10g (REP-0756: Advertência: não é possível localizar a biblioteca ‘‘ de PL/SQL)?

Este erro acontece pois o relatório, que se deseja editar, utiliza uma biblioteca que não está sendo localizada pelo Oracle Reports.

Para solucionar este problema, é necessário clicar sobre o ícone que abre o Oracle Reports com o botão direito no campo “Iniciar em:” e adicionar o endereço onde ficam as bibliotecas utilizadas.

Avaliação do Joystick Bluetooth ÍPega PG-9028

O controle Ípega PG-9028 é um controle Bluetooth compatível com dispositivos Android, iOS e PC. Tem um touchpad de 2 polegadas, botões multimídia e um suporte telescópico.

Sua bateria tem longa duração, que permite jogar sem ter que ficar fazendo recarga a cada sessão.

O único problema que encontrei foi fixar o telefone ao controle: como os botões do Moto G ficam na lateral, eles terminam sendo pressionados ao fixá-lo. Para solucionar este problema é necessário colocar o telefone um pouco descentralizado, o que não é um grande problema!

Ao contrário do que alguns videos no Youtube falam, ele não é pequeno e não causa desconforto ao utilizá-lo.

Sua utilização é bem simples: ligue o joystick, ative o Bluetooth do telefone e realize o pareamento inicial (feito apenas uma vez) e automaticamente os emuladores já reconhecem que existe um joystick conectado.

O controle vem com um manual em Inglês, chinês e japonês; e um cabo para a realização da recarga.

Valor: R$ 100,00

Joystick Bluetooth ÍPega PG-9028 - Frente da Caixa Joystick Bluetooth ÍPega PG-9028 - Fundo da CaixaJoystick Bluetooth ÍPega PG-9028 - 02 Joystick Bluetooth ÍPega PG-9028 - 03 Joystick Bluetooth ÍPega PG-9028 - 01 Joystick Bluetooth ÍPega PG-9028 - Conteúdo da Caixa

Como utilizar cursor no PL SQL

Segue abaixo um exemplo básico do uso de cursor na linguagem PL/SQL

DECLARE

  CURSOR Funcionarios IS

      SELECT
        matricula
        nome
      FROM
        funcionario

  registroFuncionario Funcionarios%Rowtype;

BEGIN

     OPEN Funcionarios;

     LOOP
            Fetch Funcionarios Into registroFuncionario;

            EXIT WHEN Funcionarios%NotFound;

              Dbms_Output.Put_Line ('Funcionário: ' || registroFuncionario.matricula || ' - ' || registroFuncionario.nome );

      END LOOP;

      CLOSE Funcionarios;

END;