Créer un nouveau blog :

A propos de ce blog


Nom du blog :
khanfouf
Description du blog :
info-programme
Catégorie :
Blog High-tech
Date de création :
07.05.2007
Dernière mise à jour :
27.08.2009

RSS

Rubriques

>> Toutes les rubriques <<
· Algerie (2)
· JAVA (2)
· ORACLE (3)

Navigation

Accueil
Gérer mon blog
Créer un blog
Livre d'or khanfouf
Contactez-moi !
Faites passer mon Blog !

Articles les plus lus

· passeport électronique
· Remplir un champ CLOB depassant 2000 car
· jointure entre result set en memoire
· Java Embarqué:
· Algérie

· Sql Dynamique

 

Statistiques 9 articles


Derniers commentaires

http://catch-wws .forumperso.com/ index.htm world wrestling star il s'agit d'un forum ou vous prenez le cont...
(Voir la suite)
Par Triple H, le 05.03.2008


RSS

Recherche
Recherche personnalisée

Blogs et sites préférés

· You Tube
· El-Khabar
· Compiere
· Actualité internet
· Audaxis


Animation 2

Publié le 27/08/2009 à 15:13 par khanfouf

Vidéo Youtube




--

Animation1

Publié le 27/08/2009 à 15:12 par khanfouf

Vidéo Youtube

La fonction column To Row

Publié le 25/08/2009 à 17:37 par khanfouf
CREATE OR REPLACE FUNCTION coltorow( p_slct IN VARCHAR2, p_dlmtr IN VARCHAR2 DEFAULT ',' ) RETURN VARCHAR2

AUTHID CURRENT_USER

/* 1) Column should be character type.

2) If it is non-character type, column has to be converted into character type.

3) If the returned rows should in a specified order, put that ORDER BY CLASS in the SELECT statement argument.

4) If the SQL statement happened to return duplicate values, and if you don't want that to happen, put DISTINCT in the SELECT

statement argument. */

AS TYPE c_refcur IS REF CURSOR;

lc_str VARCHAR2(4000);

lc_colval VARCHAR2(4000);

c_dummy c_refcur;

l number;

BEGIN

OPEN c_dummy FOR p_slct;

LOOP

FETCH c_dummy INTO lc_colval;

EXIT WHEN c_dummy%NOTFOUND;

lc_str := lc_str || p_dlmtr || lc_colval;

END LOOP;

CLOSE c_dummy;

RETURN SUBSTR(lc_str,2);

END;

Utilisation

* Exemple :

select name from m_product

* resulat 1:

name

====

AAAA

BBBB

CCCC

* Avec la fonction coltorow :

select coltorow('select name from m_product') as name from dual

* resultat 2 :

name

================

AAAA,BBBB,CCCC

* Avec un autre délimiteur par exemple ';' :

select rowtocol('select name from m_product', ';') as name from dual

* resultat 3 :

name

================

AAAA;BBBB;CCCC

Sql Dynamique

Publié le 24/08/2009 à 16:20 par khanfouf
Voici la procédure qui donne la liste des colonne d'une requête construite dynamiquement:

create or replace PROCEDURE list_col_request
(
m_sql NVARCHAR2
)
AS
BEGIN
DECLARE
curid NUMBER;
desctab dbms_sql.DESC_TAB;
colcnt NUMBER;
sql_stmt NVARCHAR2(2000) := m_sql;
BEGIN
curid := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(curid, sql_stmt, DBMS_SQL.NATIVE);
DBMS_SQL.DESCRIBE_COLUMNS(curid, colcnt, desctab);
FOR i IN 1 .. colcnt
LOOP
DBMS_OUTPUT.PUT(desctab(i).col_name);
DBMS_OUTPUT.PUT_LINE(desctab(i).col_schema_name);
END LOOP;
DBMS_SQL.CLOSE_CURSOR(curid);
END;
END;

passeport électronique

Publié le 31/01/2008 à 12:00 par khanfouf
passeport électronique
Le passeport électronique en Algérie.

Algérie

Publié le 25/01/2008 à 12:00 par khanfouf
Algérie
Salaire en Algérie.

Remplir un champ CLOB depassant 2000 car

Publié le 29/07/2007 à 12:00 par khanfouf
cette procedure plsql a comme parametre l'ID pour preciser quel champ on doit le mettre a jour dans la table et le contenu d'un CLOB qu'on va l'ajouter au champ request dans l'exemple ci-dessous:
si on applle cette procedure a partir d'un code java avec un ID et un String on aura le contenu du String a la fin du champ request.
par contre si on fait un update sur ce champ oracle a une limitation de la taille du champ et il tronque a 2000car.
CREATE OR REPLACE PROCEDURE ajouter
( p_Element_ID IN NUMBER, p_Request IN CLOB)
AS
dest_lob CLOB;
BEGIN
SELECT Request
INTO dest_lob
FROM MA_Table
WHERE MA_Element_ID=p_Element_ID FOR UPDATE;
-- Ajout de src_lob a la fin de dest_lob --
DBMS_LOB.APPEND(dest_lob, p_Request);
COMMIT;
END;

jointure entre result set en memoire

Publié le 29/07/2007 à 12:00 par khanfouf
code java:
String strUrl = "jdbc:microsoft:sqlserver://InvertedSoftware.com:1433;DatabaseName=InvertedSoftware";
String strUserId = "USER";
tring strPassword = "PASSWORD";
String className = " com.microsoft.jdbc.sqlserver.SQLServerDriver ";
try {
Class.forName(className);
} catch(java.lang.ClassNotFoundException e) {
System.err.println(e.getMessage());
}
try {

Connection con = DriverManager.getConnection(strUrll, strUserId, strPassWord);
Statement stmt = con.createStatement();
ResultSet rs1 = stmt.executeQuery("SELECT * FROM tbl_category");
ResultSet rs2 = stmt.executeQuery("SELECT * FROM tbl_product");
CachedRowSet categoryCachedRowSet = new CachedRowSetImpl();
categoryCachedRowSet.populate(rs1);
CachedRowSet productCachedRowSet = new CachedRowSetImpl();
productCachedRowSet.populate(rs2);
con.close();
JoinRowSet jrs = new JoinRowSetImpl();
jrs.addRowSet(categoryCachedRowSet, "category_id");
jrs.addRowSet(productCachedRowSet, "category_id");
jrs.close();
} catch(SQLException sqle) {
}

Explication:
rs1 c'est le result set qui contient les données de la table category
rs2 c'est le result set qui contient les données de la table product
categoryCachedRowSet, productCachedRowSet se sont deux result set qui travaillent directement en memoire.
JoinRowSet c'est le result set qui fait la jointure des deux result set en memoire.

Java Embarqué:

Publié le 10/06/2007 à 12:00 par khanfouf
Comment charger une fonction java dans oracle?
il faut juste ouvrir la commande du DOS
et mettre la commande suivante:
loadjava -u username/password@dbname -r classname.java
Exemple:
loadjava -u root/root@orcl -r C:/app.java