Affichage des articles dont le libellé est oracle. Afficher tous les articles
Affichage des articles dont le libellé est oracle. Afficher tous les articles

vendredi 16 septembre 2011

Oracle PL/SQL Data Scanner Script v0.2

Cette version du script permet de scanner toutes les tables d'une base de données, toutes les colonnes de chaque table, et parcoure la première ligne de la table ; La valeur de chaque colonne de la première ligne est obtenue.


-- Oracle PL/SQL Data Scanner Script v0.2
-- By IO-ESG (09/2011)

declare
myvar varchar2(1024);
i number;
myresult varchar2(1024);
myval varchar2(1024);
nbrec number;
valeur varchar2(256);

begin
dbms_output.enable(500000);
for t in (select t.* from all_tables t where t.owner like 'OWNER') loop
myvar := t.table_name;
dbms_output.put_line('table name = ' || myvar);

begin
execute immediate ('select count(*) from ' || t.table_name)
into nbrec;
dbms_output.put_line(' Nb records = ' || nbrec);
exception
when others then
dbms_output.put_line(' *** exception count ***');
end;

for u in (select u.* from all_tab_columns u where u.table_name = myvar) loop
dbms_output.put_line(' column name = ' || u.column_name);

begin
execute immediate('select v.' || u.column_name || ' from ' || u.table_name || ' v')
into valeur;
exception
when others then
dbms_output.put_line(' *** exception value ***');
end;

dbms_output.put_line(' VALUE = ' || valeur);

end loop;
end loop;
end;

mercredi 3 août 2011

(C#/.NET Framework 4) Insert SQL en base Oracle et obtention de l'ID ajouté.


Contexte : La table MATABLE comporte plusieurs champs dont un qui est nommé ID et qui est alimenté automatiquement par une SEQUENCE INCREMENTEE au sens ORACLE.
String strSQL = "insert into MATABLE(CHAMPS1) values('VALEUR1') returning id into :myOutputParameter";
OracleCommand oracleCommand = new OracleCommand();
oracleCommand.Connection = oracleConnection;
oracleCommand.CommandType = System.Data.CommandType.Text;
oracleCommand.CommandText = strSQL;
oracleCommand.Parameters.Add("myOutputParameter", OracleDbType.Decimal, System.Data.ParameterDirection.ReturnValue);
oracleCommand.ExecuteReader();
int id = Int32.Parse(oracleCommand.Parameters["myOutputParameter"].Value.ToString());

mardi 28 juin 2011

Script PL/SQL Oracle Data Scanner v0.1

Après la publication du script PL/SQL d'hier, je me permets de créer donc le projet "Script PL/SQL Oracle Data Scanner" dont la version est actuellement en v0.1. L'objectif premier est de créer un script qui permet de rechercher une valeur dans une base de données Oracle en itérant sur tous les enregistrements de toutes les tables d'une base de données Oracle.

Pour chaque table, cette amélioration du script permet de compter tous les enregistrements de chacune, et liste les champs de chacune des tables également. Pour des raisons encore non élucidées, il y a des exceptions sur certaines tables système (probablement des droits qui ne permettent pas de les lire).
declare
myvar varchar2(1024);
i number;
myresult varchar2(1024);
myval varchar2(1024);
nbrec number;
begin
dbms_output.enable(500000);
for t in (select t.* from all_tables t where t.table_name like '%') loop
myvar := t.table_name;
dbms_output.put_line('table name = ' || myvar);

begin
execute immediate ('select count(*) from ' || t.table_name)
into nbrec;
dbms_output.put_line(' Nb records = ' || nbrec);
exception
when others then
dbms_output.put_line(' *** exception count ***');
end;

for u in (select u.* from all_tab_columns u where u.table_name = myvar) loop
dbms_output.put_line(' column name = ' || u.column_name);
end loop;
end loop;
end;

lundi 27 juin 2011

PL/SQL Oracle Scanner tous les champs de toutes les tables

declare
myvar varchar2(1024);
i number;
myresult varchar2(1024);
begin
for t in (select t.* from all_tables t where t.table_name like 'MARESTRICTIONDETABLE%') loop
myvar := t.table_name;
dbms_output.put_line('table name = ' || myvar);

for u in (select u.* from all_tab_columns u where u.table_name = myvar) loop
dbms_output.put_line('column name = ' || u.column_name);
end loop;

end loop;
end;

Avant de lancer l'exécution de ce script, mettez une restriction en remplaçant MARESTRICTIONDETABLE.

Si vous ne voulez aucune restriction, on peut étendre le champs d'application à absolument toutes les tables d'une base de données Oracle en supprimant la clause WHERE suivante

where t.table_name like 'MARESTRICTIONDETABLE%'

Have Fun !

mardi 1 mars 2011

Création du blog BPEL MASTER

Je vous annonce officiellement la création du blog BPEL MASTER à l'adresse web suivante :

http://bpelmaster.blogspot.com

Have fun !

jeudi 17 février 2011

C# ASP.NET et problèmes Oracle.DataAccess.dll

Il peut arriver que lorsque vous ouvrez un projet sur une machine autre que celle sur laquelle il a été initialement créé, il y ait
alors des erreurs IIS ASP.NET qui s'affichent concernant la DLL Oracle.DataAccess.dll

Afin d'avancer dans la résolution de ce problème, il faut savoir que lorsque vous lancez l'exécution du projet dans un navigateur web, le serveur web de développement tente de charger la DLL Oracle.DataAccess.dll qui correspond à la version qui a été initialement importée dans le projet.

Le serveur va alors rechercher la bonne dll dans les répertoires du projets, puis de la GAC, puis dans les répertoires systèmes de la machine locale.

Si une erreur s'affiche il faut alors en général réimporter la bonne dll Oracle.DataAccess dans le projet (la bonne version). Et en général il faut également réinstaller les composants clients Oracle, puis fermer Visual Studio et le ré-ouvrir.