Todos nós sabemos da preguiça da Microsoft em reescrever códigos e essa é mais uma delas rs.
O windows vista e XP, por serem versões client, só aceitam uma conexão via terminal service por vez, assim forçando empresas a comprarem a versão server para ter tal recurso. Um nerd americado descobriu que essa opção está apenas desativada nos windows client e alterou uma dll fazendo com que possamos nos conectar com vários usuários diferentes em uma mesma máquina, agora podemos utilizar o vista e o xp com várias pessoas conectadas ao mesmo tempo. Segue abaixo um passo a passo de como fazer:
O primeiro passo é baixar o arquivo hackeado para multiuser:
Vista 32Bits: http://rapidshare.com/files/44937685/termsrv_new.dll
Vista 64Bits: http://rapidshare.com/files/44937686/termsrv64.dll
Agora vamos a receita de bolo:
1-São necessários alguns truques para o Windows Vista permitir que vc manipule arquivos de sistema como é o nosso caso. Vá no menu Iniciar e procure o “Prompt de Comando” , clique com o botão direito do mouse e escolha “Executar como Administrador”
2-No prompt digite o seguinte comando: takeown /f C:\Windows\System32\termsrv.dll
3-Agora digite: cacls C:\Windows\System32\termsrv.dll /G USERNAME:f
Onde USERNAME é o nome de usuário com que vc estiver logado.
4-Agora vá ao Windows Explorer em C:\Windows\System32 e procure o arquivo termsrv.dll e renomeio para termsrv.acr
5- Confirme quando o Windows pedir confirmação.
6-Renomeie o arquivo que vc baixou de termsrv_new.dll para termsrv.dll e copie para C:\Windows\System32\
Observações:
Como no Windows XP, no Vista todos os usuários que irão se conectar remotamente terão que ter senhas. Alem disso os usuários que podem fazer acesso remoto devem ser declarados em: Computador >> Configurações Remotas >> Selecionar Usuários…
Vale lembrar que essa dica só funciona para as versões Business e Ultimate do Windows Vista, onde o Remote Desktop monouser ja está disponivel.
Os caras do TheGreenButton estão trabalhando para fazer isso funcionar no Home Premium mas ainda está em teste.
Terminal Service p/ Multi User – Windows Vista
2 02UTC Janeiro 02UTC 2009 por sunkabrucksOracle Básico – Parte 1
9 09UTC Setembro 09UTC 2008 por sunkabrucksOlaaa, meu objetivo nessa série de post’s é fazer o leitor aprender um pouco sobre pl/sql, mas antes de chegar no pl vou colocar vários exercícios básicos sobre oracle, justamente para outras pessoas como eu que trabalha com Mysql ou outros bancos possam se familiarizar com o oracle, claro que não vou postar como instalar o oracle ou essas coisas, existe 5 trilhões de artigos desses na internet ensinando, vou apenas colocar o arquivos para os senhores preencherem seu banco e poder fazer os exercícios. Entende-se que o leitor já conheça sql e sobre banco de dados em geral.
Bibliografia utilizada: Dominando o Oracle 9i, Modelagem e Desenvolvimento (Totalmente Recomendado).
Primeiro passo:
Criar as tabelas e colocar dados, tudo isso está no script abaixo:
(Nr_Fornecedor Number (4),
Nm_Fornecedor Varchar2 (50),
Ds_Endereco Varchar2 (70),
Nr_Fone Number (12),
Dt_Nascimento Date,
Ie_Sexo Char (1),
Ie_Fisica_Juridica Char (1),
Cd_Situacao Number (3));
CREATE TABLE Cliente
(cd_cliente number (4),
nm_cliente varchar2 (65),
ds_endereco varchar2 (50),
Cd_municipio number(5),
Sg_estado char(2),
nr_cep varchar2 (8),
nr_ddd number (3),
nr_fone number (7),
Ie_sexo char(1));
CREATE TABLE Estado_Civil
(cd_estado_civil number (1),
ds_estado_civil varchar2 (10));
CREATE TABLE Municipio
(Cd_municipio Number(5),
Sg_estado Char(2),
Nm_municipio Varchar2(80));
CREATE TABLE Produto
(Cd_produto Number(5),
Nm_produto Varchar2(80),
Nm_popular Varchar2(40),
Dt_primeira_aquisicao Date,
Vl_custo_medio Number(10,2),
Cd_situacao Number(3),
Ie_nacional Char(1),
Cd_tipo_produto Number(3));
CREATE TABLE Estado
(Sg_Estado char(2),
Nm_Estado varchar2 (35));
CREATE TABLE Historico
(cd_cliente number (4),
dt_compra date,
vl_compra number (12,2),
CONSTRAINT Hst_PK PRIMARY KEY (Cd_Cliente, Dt_Compra));
CREATE TABLE Nota_Fiscal
(Nr_nota Number(5) CONSTRAINT NF_PK PRIMARY KEY,
cd_cliente Number(4) Not Null,
Dt_emissao Date Not Null,
Ie_tipo_nota Char(1)
CONSTRAINT NF_CK_Ie_Tipo_Nota CHECK (Ie_Tipo_Nota in (‘C’,'D’)),
ie_tributada Char(1)
CONSTRAINT NF_CK_Ie_Tributada CHECK (Ie_Tributada in (‘S’,'N’))) ;
CREATE TABLE Item_Nota_Fiscal
(Nr_nota Number(5),
Nr_item Number(2),
Cd_Produto Number(5),
Qt_Produto Number(13, 3),
Vl_Unitario Number(10, 2),
Ds_Observação Varchar2(250),
CONSTRAINT INF_PK PRIMARY KEY (Nr_Nota, Nr_Item),
CONSTRAINT INF_UK UNIQUE (Nr_Nota, Cd_Produto));
CREATE TABLE Tipo_Produto
(Cd_tipo_produto Number(3) CONSTRAINT TpPr_PK PRIMARY KEY,
Nm_tipo_produto Varchar2(30) Not Null);
CREATE TABLE Pais
(Cd_pais Number(2) CONSTRAINT PAIS_PK PRIMARY KEY,
Nm_pais Varchar2(45) CONSTRAINT PAIS_UK UNIQUE,
Ds_nacionalidade Varchar2(35)) ;
CREATE TABLE Empresa
(Cd_empresa Number(2) CONSTRAINT EMP_PK PRIMARY KEY,
Nm_empresa Varchar2(30) Not Null,
Nr_CGC Number(15) CONSTRAINT EMP_UK UNIQUE);
CREATE TABLE Filial
(Cd_empresa Number(2),
Cd_filial Number(2),
Nm_filial Varchar2(25) Not Null,
CONSTRAINT FL_PK PRIMARY KEY (Cd_Empresa, Cd_Filial),
CONSTRAINT FL_FK_EMP
FOREIGN KEY (Cd_Empresa)
REFERENCES Empresa (Cd_Empresa));
ALTER TABLE Cliente
ADD (Ie_Fisica_Juridica Char (1));
ALTER TABLE Fornecedor
MODIFY (Ds_Endereco Varchar2 (50));
ALTER TABLE Cliente
ADD (CONSTRAINT Cli_CK_FisJur
CHECK (Ie_Fisica_Juridica in (‘S’,'N’)) );
ALTER TABLE Empresa
DISABLE CONSTRAINT EMP_UK;
ALTER TABLE Pais
DROP CONSTRAINT Pais_UK;
ALTER TABLE Fornecedor
Add Constraint Forn_PK PRIMARY KEY (Nr_Fornecedor);
ALTER TABLE Cliente
Add Constraint Cli_PK PRIMARY KEY (Cd_Cliente);
ALTER TABLE Estado_Civil
Add Constraint EstCiv_PK PRIMARY KEY (Cd_Estado_Civil);
ALTER TABLE Cliente
Add (Cd_Estado_Civil Number(1));
ALTER TABLE Cliente
Add CONSTRAINT Cli_FK_EstCiv
FOREIGN KEY (Cd_Estado_Civil)
REFERENCES Estado_Civil (Cd_Estado_Civil);
ALTER TABLE Fornecedor
Add (Cd_Pais Number(2),
Sg_Estado Char(2),
Cd_Municipio Number(5));
ALTER TABLE Cliente
Add (Cd_Pais Number(2));
ALTER TABLE Estado
Add (Cd_Pais Number(2));
ALTER TABLE Municipio
Add (Cd_Pais Number(2));
ALTER TABLE Estado
Add Constraint Est_PK primary key (Sg_Estado);
ALTER TABLE Municipio
Add CONSTRAINT Mun_FK_Est
FOREIGN KEY (Sg_Estado)
REFERENCES Estado (Sg_Estado);
ALTER TABLE Estado
Add CONSTRAINT Est_FK_Pais
FOREIGN KEY (Cd_Pais)
REFERENCES Pais (Cd_Pais);
INSERT INTO Pais
(cd_pais, nm_pais)
VALUES
(1, ‘Brasil’);
INSERT INTO Pais
(cd_pais, nm_pais, ds_nacionalidade)
VALUES
(2,’Argentina’, null);
INSERT INTO Pais
VALUES
(3,’Chile’, ‘Chilena’);
INSERT INTO Pais
(cd_pais, nm_pais, ds_nacionalidade)
VALUES
(&Codigo,’&Nome’, ‘&Nacionalidade’);
INSERT INTO Estado_Civil
VALUES
(1, ‘Solteiro’);
INSERT INTO Estado_Civil
VALUES
(2,’Casado’);
INSERT INTO Estado_Civil
VALUES
(3,’Viúvo’);
INSERT INTO Estado_Civil
VALUES
(4,’Separado’);
INSERT INTO Estado_Civil
VALUES
(5,’Divorciado’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(5, ‘Egito’, ’Egípcia’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(6, ‘Líbano’, ‘Libanesa’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(7, ‘Arábia’, ‘Árabe’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(8, ‘Turquia’, Null);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(9, ‘China’, ‘Chinesa’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(10, ‘Japão’, ‘Japonesa’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(11, ‘Bélgica’, ‘Belga’);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(12, ‘Peru’, Null);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(13, ‘Venezuela’, Null);
INSERT INTO Pais
(Cd_Pais, Nm_Pais, Ds_Nacionalidade)
VALUES
(14, ‘Colômbia’, Null);
INSERT INTO Estado
VALUES
(‘SC’, ‘Santa Catarina’,1);
INSERT INTO Estado
VALUES
(‘PR’, ‘Paraná’,1);
INSERT INTO Estado
VALUES
(‘RS’, ‘Rio Grande do Sul’,1);
INSERT INTO Municipio
VALUES
(1, ‘SC’, ‘Bal.Camboriú’, 1);
INSERT INTO Municipio
VALUES
(2,’SC’, ‘Blumenau’, 1);
INSERT INTO Municipio
VALUES
(3,’SC’, ‘Florianópolis’, 1);
INSERT INTO Municipio
VALUES
(4,’SC’, ‘Criciúma’, 1);
INSERT INTO Municipio
VALUES
(5,’PR’, ‘Curitiba’, 1);
INSERT INTO Municipio
VALUES
(6,’PR’, ‘Ponta Grossa’, 1);
INSERT INTO Cliente
(CD_CLIENTE, NM_CLIENTE, DS_ENDERECO, CD_MUNICIPIO,
SG_ESTADO, NR_CEP, NR_DDD, NR_FONE, IE_SEXO,
IE_FISICA_JURIDICA, CD_ESTADO_CIVIL, CD_PAIS)
VALUES
(1, ‘Damaris Fanderuff’, ‘Teste Endereço’, 1,
’SC’, ‘88330000′, 047, 9853308, ‘F’,
’S', 5,1);
INSERT INTO Cliente
(CD_CLIENTE, NM_CLIENTE, DS_ENDERECO, CD_MUNICIPIO,
SG_ESTADO, NR_CEP, NR_DDD, NR_FONE, IE_SEXO,
IE_FISICA_JURIDICA, CD_ESTADO_CIVIL, CD_PAIS)
VALUES
(2, ‘ José da Silva’, ‘Rua Joinville, 380′, 4,
’SC’, ‘88000000′, 048, 9899898, ‘M’,
’S', 1,1);
INSERT INTO Cliente
(CD_CLIENTE, NM_CLIENTE, DS_ENDERECO, CD_MUNICIPIO,
SG_ESTADO, NR_CEP, NR_DDD, NR_FONE, IE_SEXO,
IE_FISICA_JURIDICA, CD_ESTADO_CIVIL, CD_PAIS)
VALUES
(3, ‘ Maria Aparecida Mafra’, ‘Rodovia Osvaldo Reis, s.n.’, 3,
’SC’, Null, 048, 3225666, ‘F’,
’S', 3,1);
INSERT INTO Cliente
(CD_CLIENTE, NM_CLIENTE, DS_ENDERECO, CD_MUNICIPIO,
SG_ESTADO, NR_CEP, NR_DDD, NR_FONE, IE_SEXO,
IE_FISICA_JURIDICA, CD_ESTADO_CIVIL, CD_PAIS)
VALUES
(4, ‘ Marlene Maria Maia’, ‘BR 470 KM 25′, 5,
’PR’, Null, 041, 2311123, ‘F’,
’S', 5,1);
INSERT INTO Fornecedor
(NR_FORNECEDOR , NM_FORNECEDOR, CD_MUNICIPIO,
SG_ESTADO, DS_ENDERECO, NR_FONE, DT_NASCIMENTO,
IE_FISICA_JURIDICA)
VALUES
(1, ‘Damaris Fanderuff’, 1,
’SC’, ‘Teste Endereço’ , 9853308, ‘26/04/74′,
’S');
INSERT INTO Fornecedor
(NR_FORNECEDOR , NM_FORNECEDOR, CD_MUNICIPIO,
SG_ESTADO, DS_ENDERECO, NR_FONE, DT_NASCIMENTO,
IE_FISICA_JURIDICA)
VALUES
(2, ‘Ana Maria de Jesus’, 2,
’SC’, ‘Teste Endereço 2′ , 9639633, ‘30/09/67′,
’S');
INSERT INTO Fornecedor
(NR_FORNECEDOR , NM_FORNECEDOR, CD_MUNICIPIO,
SG_ESTADO, DS_ENDERECO, NR_FONE, DT_NASCIMENTO,
IE_FISICA_JURIDICA)
VALUES
(3, ‘José Pacheco de Alcantara’, 4,
’SC’, ‘Avenida Teste Endereço 3′ , 9739679, ‘16/11/77′,
’S');
INSERT INTO Fornecedor
(NR_FORNECEDOR , NM_FORNECEDOR, CD_MUNICIPIO,
SG_ESTADO, DS_ENDERECO, NR_FONE, DT_NASCIMENTO,
IE_FISICA_JURIDICA)
VALUES
(4, ‘Luis Gustavo Antonielle’, 5,
’PR’, ‘Teste Endereço 4′ , 9850000, ‘20/06/70′,
’N');
INSERT INTO Fornecedor
(NR_FORNECEDOR , NM_FORNECEDOR, CD_MUNICIPIO,
SG_ESTADO, DS_ENDERECO, NR_FONE, DT_NASCIMENTO,
IE_FISICA_JURIDICA)
VALUES
(5, ‘Marli MAra Maria’, 6,
’PR’, ‘Avenida Teste Endereço 5′ , 4443322, ‘07/06/64′,
’S');
insert into produto
(CD_PRODUTO, NM_PRODUTO, DT_PRIMEIRA_AQUISICAO, VL_CUSTO_MEDIO)
values
(1,’Margarina Delicia’,sysdate, 1.5);
insert into produto
(CD_PRODUTO, NM_PRODUTO, DT_PRIMEIRA_AQUISICAO, VL_CUSTO_MEDIO)
values
(2,’Ninho Soleil’, sysdate-30, 2.3);
insert into produto
(CD_PRODUTO, NM_PRODUTO, DT_PRIMEIRA_AQUISICAO, VL_CUSTO_MEDIO)
values
(3,’Batavo Ameixa/Fibras’, sysdate-22, .65);
insert into produto
(CD_PRODUTO, NM_PRODUTO, DT_PRIMEIRA_AQUISICAO, VL_CUSTO_MEDIO)
values
(4,’Danoninho’, sysdate-45,3.12);
insert into produto
(CD_PRODUTO, NM_PRODUTO, DT_PRIMEIRA_AQUISICAO,
VL_CUSTO_MEDIO)
values
(5, ‘Chandelle Chocolate’, TO_DATE(‘20/04/1998′,’dd/mm/yyyy’), 1.5);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1000, 1, sysdate, ‘C’, ‘S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1001, 2, sysdate – 3, ‘C’, ‘S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1002, 3, sysdate – 15, ‘D’, ‘S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1003, 3, sysdate -24, ‘C’, ‘N’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1004, 6, sysdate – 30, ‘C’,'S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1005,6, sysdate-10, ‘C’, ‘N’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1006, 6, sysdate-45, ‘C’,'S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1007, 1, sysdate-11, ‘D’, ‘S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1008, 1, sysdate-23, ‘C’, ‘S’);
insert into nota_fiscal
(NR_NOTA, CD_CLIENTE, DT_EMISSAO, IE_TIPO_NOTA, IE_TRIBUTADA)
VALUES
(1009, 1, sysdate-21, ‘C’, ‘S’);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1000, 1, 1, 2, 1.2);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1000, 2, 2, 5, 2.1);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1001, 1, 3, 10, 1.32);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1002, 1, 4, 20, 1);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1002, 2, 3, 15, 1.12);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1002, 3, 5, 1, 2.1);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1003, 1, 2, 50, 1.7);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1003, 2, 1, 21, 1.2);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1003, 3, 3, 30, 1.26);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1003, 4, 5, 10, 2.56);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1003, 5, 4, 2, 2.45);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1004, 1, 4, 45, 3);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1004,2,3, 5, 1);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1004, 3, 1, 5, 1.8);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1005, 1, 2, 6, 2.44);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1005, 2, 5, 4, 1.89);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1005, 3, 4, 24, 3.11);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1006, 1, 3, 66, .8);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1007, 1, 4, 100, 4.5);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1007, 2, 3, 225, .9);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1007, 3, 5, 45, 1.9);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1007, 4, 1, 56, 1.7);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1008, 1, 2, 20, 2.5);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1008, 2, 3, 2, 1);
insert into item_nota_fiscal
(NR_NOTA, NR_ITEM, CD_PRODUTO, QT_PRODUTO, VL_UNITARIO)
VALUES
(1009, 1, 4, 5, 5);
insert into empresa
(cd_empresa, nm_empresa, nr_cgc)
values
(1, ‘Super empresa 1′, 123456789);
commit;
2° Passo:
Estudar os exercícios abaixo, façam variações utilizando as funções abaixo utilizadas
1) Selecionar, da tabela Cliente, na coluna nm_cliente, o número de caracteres que este nome possui e a posição em que aparece a primeira letra ‘A’ do nome, independentemente de essa letra estar em maiúsculo ou minúsculo.
R: SELECT
NM_CLIENTE,
LENGTH(NM_CLIENTE),
INSTR(UPPER(NM_CLIENTE), ‘A’)
FROM
CLIENTE
2) Selecionar, da tabela Produto, o nome do produto e o seu custo médio, de modo que apareça com duas casas decimais e pelo menos uma casa inteira.
R: SELECT
NM_PRODUTO “NOME”,
TO_CHAR(VL_CUSTO_MEDIO, ‘9,990.99′) CUSTO_MEDIO
FROM
PRODUTO
3) Selecionar o nome do fornecedor, o mês e o ano do seu nascimento, o número de dias transcorridos entre a data de nascimento e o final do ano em que nasceu e o número inteiro de meses entre a sua data de nascimento e o primeiro dia do ano 2000.
R: SELECT
NM_FORNECEDOR “NOME DO FORNECEDOR”,
TO_CHAR(DT_NASCIMENTO, ‘MM/YYYY’) “MES_ANO”,
TO_DATE(‘31/12/’ || TO_CHAR(DT_NASCIMENTO, ‘YYYY’), ‘DD/MM/YYYY’) – DT_NASCIMENTO “DATA_NASCIMENTO_DATA_FINAL”,
TRUNC(MONTHS_BETWEEN(TO_DATE(‘01/01/2000′, ‘DD/MM/YYYY’), DT_NASCIMENTO), 0) “QUANTIDADE_MESES”
FROM
FORNECEDOR
4) Selecionar, da tabela PRODUTO, os produtos e o total de meses(número inteiro arredondado para maior) desde que ele foi adquirido pela primeira vez.
R: SELECT
NM_PRODUTO,
CEIL(MONTHS_BETWEEN(SYSDATE, DT_PRIMEIRA_AQUISICAO)) “QUANTIDADE_MESES”
FROM
PRODUTO
5) Selecionar o nome do cliente e a frase “Cliente Nacional” se seu país for o Brasil e “Importador” caso não seja.
R: SELECT
NM_CLIENTE,
DECODE(CD_PAIS, 1, ‘CLIENTE NACIONAL’, ‘IMPORTADOR’)
FROM
CLIENTE
Windows PowerShell – Replace de Caractere
4 04UTC Setembro 04UTC 2008 por sunkabrucksProblema: Alguns arquivos arquivos que tenho são carregados diariamente em um servidor Sql Server 2005, mas esses arquivos estão vindo de outro lugar com o sinal de “+” na frente de alguns campos numérios e assim a carga desses arquivos está dando erro.
Possível Solução 1: O óbvio!!! Alterar o programa que da a carga, editando esse arquivo e tirando esse caracter inválido. Mas como nem tudo é fácil na área de TI não posso fazer isso, o programa que da a carga é um .exe e não querem alterar ele(custos rs).
Possível Solução 2: Vamos então pedir pra quem gera esse arquivo parar de gerar esse indivíduo errado!!! Massssss o problema chamado “custo” aparece.
Solução feita: Após consultar alguns profissionais resolvi usar o Microsoft PowerShell, nunca o tinha usado mas achei muito interessante, com ele conseguimos usar rotinas tipo sh do unix no windows com boa velocidade, a ferramenta é gratuíta!!! O aprendizado dele é fácil e requer pouco tempo, basta algumas consultar no google com “PowerShell tutorial” que vão achar bastante coisa. Voltando para o assunto principal, vou escrever abaixo o scritp comentado o que foi desenvolvido:
# Função que da o famoso replace.
# No find se coloca a string que se quer procurar.
# No replace coloca-se a string que quer trocar pelo que achou no find.
# No includes coloca-se o diretório com o nome do arquivo.
function Replace-String($find, $replace, $includes)
{
get-childitem $includes | select-string $find -list |
% { (get-content $_.Path) |
% { $_ -replace $find, $replace } |
set-content $_.Path }
}
# $args = é o argumento que é passado quando chama esse programa.
# $args.length = o tamanho desse args, pois posso passar mais de um argumento, é criado um array de args.
# Se $args.length for diferente de 0 faça:
if ($args.length -gt 0)
{
# Recebe o primeiro argumento, que no caso é o diretório com o arquivo, ex: c:\arquivoTeste.txt
$arquivo = $args[0];
# apenas escreve na tela
“Foi passado o nome do arquivo”;
# Se esse arquivo existe
if (Test-Path $arquivo)
{
“Arquivo existe”
# Crio um arquivo temporário pq pode acontecer de o servidor cair no meio do processo ou algo do tipo
$temporaria = $arquivo + “TMP”;
# Fácil de entender, copia o arquivo e cola ele com o nome do temporário que foi definido acima.
Copy-Item $arquivo $temporaria;
“Arquivo temporário criado com sucesso”
# Chama nossa função passando os parâmetros necessários, Obs: todos os parâmetros são separados por espaço.
# O barra \+ é um caracter de scape pois se for passar só o caractere “+” ele vai pensar que vai somar algo.
Replace-String “\+” “0″ “$arquivo”;
“Retirada dos caracteres finalizada com sucesso”
# Remove o arquivo temporário
Remove-Item $temporaria;
“Arquivo temporário removido com sucesso”
}
else
{
“Arquivo não existe”
}
}else {
Write-Host “Não foi passado o nome do arquivo”;
}
OBS1: Todos os arquivos PowerShell tem que estar com a extenção .ps1
OBS2: Quando instalamos o PowerShell ele não vem com permissão para executar script então temos que executar o seguinte comando no prompt do PowerShell:
Set-Executionpolicy remotesigned
OBS3: Caso queira executar os scripts powershell no prompt normal do windows user o seguinte comando:
powershell.exe -noexit <programa>
No caso do nosso exemplo:
powershell.exe -noexit <end_do_script> <end_do_arquivo>
Acabouuu!!! Quem tiver dúvidas só mandar comentários que respondo assim que puder, Obrigado!!!
Meu primeiro Ola Mundo
4 04UTC Setembro 04UTC 2008 por sunkabrucksOla pessoal, ou eu mesmo, pois acredito que eu apenas vou ler o que vou escrever rs, mas é isso, criei esse blog com o objetivo de compartilhar informações e também arquivar de forma organizada as mesmas, trabalho na área de informática, sou analista de sistemas e tenho novos desafios diariamente e assim o aprendizado é constante, vou tentar ao máximo postar resoluções de problemas que tive e até pequenos tutoriais sobre diversos assuntos para pessoas iniciantes e de nível intermediário(espero quem sabe algum dia postar informações para profissionais especializados, quem sabe ? rs)
Bom é isso, espero que gostem e sejam bem vindos!!!