Archive for Maio 2008
Que versão de Oracle estou executando
Se estamos usando SqlPlus e queremos saber que versão de Oracle é o banco de dados ao que estamos conectado, a sentencias para decifrar são as seguintes:
SET SERVEROUTPUT ON SIZE 10000
DECLARE
VERSION1 VARCHAR2(59);
VERSION2 VARCHAR2(59);
BEGIN
dbms_utility.db_version(VERSION1,VERSION2);
DBMS_OUTPUT.PUT_LINE(VERSION1);
DBMS_OUTPUT.PUT_LINE(VERSION2);
END;
/
Version1, mostra a versão do banco de dados.
Version2, mostra com que versão é compatível a instancia, baseado na configuração setada no INIT.ORA, se este parâmetro de compatibilidade não está setado, devolverá null.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Como usar Case em Oracle
(Postado originalmente no dia 23/04/07)
Pode acontecer que necessitemos devolver um texto ou valor dependendo dum dado duma coluna numa tabela Oracle.
Por exemplo:
Se temos uma tabela de nome Empleado_Salarios com os campos
Empleado, Salario
e com valores
Agustin, 20.000
Ignacio, 1.500
Nicolás, 10.000
E num “select” queremos em vez de mostrar os valores exatos e mostrar categorias, podemos usar a sentencia CASE de Oracle como mostra o seguinte exemplo.
Select Empleado,
CASE
when Salario < 5.000 then ‘Salario Bajo’
when Salario >= 5.000 and Salario < 15.000 then ‘Salario Medio’
else ‘Salario Alto’
END Categoria_Salario
from Empleados_Salarios;
A sentencia contem as palavras reservadas “when” para estabelecer as condições, “else” para o caso que não cumpra uma das condições when, e “CASE” e “END” que encerram a cláusula condicional, coloquei a palavra “Categoria_Salario” como alias duma coluna de categorias.
Outro exemplo simples poderia ser:
Tenho uma tabela de nome Stock com 3 campos:
Material char(20),
Entradas number(10),
Saidas number(10)
E quero saber os saldos positivos de Entradas – Saidas, e no caso que as Saidas sejam maiores que as Entradas, não quero mostrar o valor negativo, senão um valor 0.
Temos que ter em consideração os valores nulos que poderia ter de Entradas ou Saídas
O select seria o seguinte:
Select Material,Nvl(entradas,0) Entradas, Nvl(saidas,0) Saidas,
Case Nvl(entradas,0) – Nvl(saidas,0) > 0 then Nvl(entradas,0) – Nvl(saidas,0)
else 0
End Diferencia
from Stock;
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Error ORA-00957 GeneXus Oracle duplicate column name
(Postado originalmente no dia 17/04/07)
Duplicate column name ou ORA-00957 com oracle, no meu caso Visual Basic, se produz basicamente por um erro comum que pode acontecer.
Se deve basicamente a que possivelmente no código tanto seja num New ou num When Duplicate se está fazendo referencia a um atributo 2 vezes por erro.
Exemplo:
New
CliCod=&CliCod
CliNom=&CliNom
CliEnd=&CliEnd
CliEnd=&Endereco
EndNew
Também pode acontecer num When duplicate não documentado neste exemplo.
É um erro simples de cometer geralmente quando se copiam códigos de um objeto para outro.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
error CS0006: Arquivo de metadados ‘vjslib.dll’ não pôde ser encontrado compilando .NET com GeneXus 90
(Postado originalmente no dia 16/04/07)
Geralmente acontece quando temos um modelo de GeneXus em Visual Basic ou qualquer outro gerador que não sea ।NET e criamos outro modelo para testar algo .NET e não temos instalado o Visual J#
e solucionar o problema.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Obter Valor de Autonumber em procedimiento genexus
(Postado originalmente no dia 21/03/07)
Algo que geralmente nos perguntamos ao utilizar um campo autonumber é ao momento de usar num “New” num procedimento, como obter o valor do campo que acabamos de inserir?
Exemplo:
parm(in:&Var1,in:&Var2,in:&Var3,out:&VarAuto);
//Source
New //Tabela
Att1=&Var1
Att2=&Var2
Att3=&Var3
EndNew
&VarAuto=Att0
Att0 é a chave autonumber gerada para essa tabela.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Server Error in ‘/services’ Application: genexus e .NET
(Postado originalmente no dia 29/11/06)
Gerando ।NET com Genexus 9 um erro que aconteceu foi:
Server Error in ‘/services’ Application:
O problema é que estava compilando com Framework 2.0 e o IIS estava setado para 1.1 como mostra a imagem.
A solução foi setar a versão correta de framework na aba APNET do IIS.
Isso geralmente acontece quando temos instalado o 1.1, executando aplicações e depois instalamos o 2.0
Após setado corretamente paramos, e levantamos o IIS e já está funcionando o objeto corretamente.Informação obtida de: Manual do Gerador .NET
Texto:
Server Error in ‘/services’ Application:
System.BadImageFormatException: The format of the file ‘HXXXX’ is invalid.
File name: “reorganization”
Motivos/Soluções:
- Se esta compilando com framework 2.0 y executando com framework 1.1 ou inferior
- Se esta gerando com a versão 8.0 de GeneXus ou inferior y executando com framework 2.0.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Error Loading GemBox.ExcelLite.dll genexus e .Net quando queremos gerar arquivo excel
(Postado originalmente no dia 30/11/06)
Quando queremos gerar um arquivo Excel com GeneXus e .NET em algum caso podemos nos encontrar com o seguinte erro:
Error Loading GemBox.ExcelLite.dll
O problema é que não temos as livrarias correspondentes para gerar Excel.
Podemos também gerar Excel usando Jakarta Poi.
Devemos conseguir as seguintes dlls e copiar as mesmas no diretório web/bin
Apache.Xalan2.dll
Apache.Xerces2.dll
Apache.Xml.Commons.dll
Jakarta.Commons.Logging.dll
Jakarta.POI.dll
JSharpLib.dll
Isto funciona com:
- .NET Framework 2.0
- JSharp framework 2.0
Verificar nas propriedades de execução do modelo GeneXus que o compilador C# este apontado ao Framework 2.o
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe
Verificar nas propriedades de execução do modelo GeneXus que o compilador C# este अपोंतादो ao Framework 2.o
Alem disso temos que considerar que esteja correto o set da versão do framework para o IIS na aba ASPNET tal como mencionei num post anterior.
Após de ter setado tudo corretamente, podemos encontrar outro erro:
“Could not load or assembly ‘Jakarta.POI’ or one of its dependencies”
O SAC diz que provavelmente não está instalado o JSharp 2।0, mas quando me encontrei com o problema não foi esse meu caso.
Solução:
Tive que apagar o diretório “web” e seus subdiretórios (prévio backup das dlls jakarta, images, etc), apagar o diretório virtual, compilar um main, copiar as dlls imagens e demais ao seus diretórios correspondentes, logo fazemos o build do objeto que chama ao gerador do Excel e sua correspondente compilação.
Existe muita informação relacionada no GxTechnical baixo o SAC 19780.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Server Error in ‘/’ Application .Net genexus
(Postado originalmente no dia 21/11/06)
Server Error in ‘/’ Application.
The resource cannot be found.
Se o erro acontece quando estamos gerando .Net com Genexus, um dos motives deste erro pode ser porque não existe o diretório virtual.
Solução, se não temos arquivos externos que não queremos perder, podemos apagar o diretório web debaixo do data00X, e fazer um build all e compilar o main novamente.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Página não pode ser exibida IIS .NET genexus
(Postado originalmente no dia 09/11/06)

Este erro pode dar quando logo após ter instalado o IIS, e digitamos a url HTTP://localhost para testar a se carrega a pagina de inicio do IIS a mesma não aparece.
Um dos motivos pode ser que instalamos o IIS posteriormente a ter instalado o .Net Framework.
Uma das possíveis soluciones, é desinstalar as versões do framework que estejam instaladas no PC, desinstalar o IIS, reiniciar o PC e logo instalar primeiro o IIS e depois o .Net framework com qual vamos trabalhar.
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
Explain Plan para Otimizar consultas sql oracle
(Postado originalmente no dia 04/10/06)
Quando o resultado de uma consulta demora muito e queremos saber o porquê, podemos ver um detalhe do que a consulta está fazendo.
Passos a seguir usando o sqlplus:
1)
alter session set sql_trace=true;
2)
explain plan for select …….
3)
select operation ||’ ‘||options||’ ‘||object_name from plan_table
connect by prior id=parent_id
start with id=1;
Informação obtida de: ADP
Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.
Veja meus blogs em:
www.fabriciodelossantos.com
