ORA-01403 no data found - utlu102s.sql Migration Oracle 8i vers 10g 10.2.0.3

Posted on mai 23rd, 2007 in Bug, DataBase, Oracle by David

Bonjour,

Lors de la mise à jour des script utlu102s.sql et utlu102x.sql, monsieur R.Burns a eu un petit coup de mou…

Rem rburns 10/07/05 - check UNDO tablespaces

C’est sur, sur une 8i ca fait désordre :

SQL> @utlu102i.sql
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 1560

Donc, prenez votre éditeur de texte favori et modifiez ceci :

Trouver cette partie:

SELECT value INTO db_undo FROM v$parameter
WHERE name = ‘undo_management’;
SELECT value INTO db_undo_tbs FROM v$parameter
WHERE name = ‘undo_tablespace’;

Et modifiez :

– SELECT value INTO db_undo FROM v$parameter
– WHERE name = ‘undo_management’;
– SELECT value INTO db_undo_tbs FROM v$parameter
– WHERE name = ‘undo_tablespace’;

A plus !

ORA-04042 Lors de la création du repository Grid Enterprise Manager.

Posted on mai 23rd, 2007 in DataBase, Oracle, Tips by David

Oracle : 10g

Produit : Oracle Enterprise Manager Grid Control.

Lors de l’installation du repository EM, sur une base existante, vous pouvez avoir ce message :

ORA-04042 - dbms_shared_pool’ Is Missing or Corrupt

1 une solution :

en tant que sys as sysdba : @?/rdbms/admin/dbmspool.sql

ensuite : grant execute on dbms_shared_pool to dba;

Voila ! a+

Générer du XML avec Oracle.

Posted on mai 10th, 2007 in DataBase, Oracle, Tips by David

Depuis la version 9i, Oracle donne la possibilité de générer et gérer du XML via le composant XML DB.

Pour générer un flux, on dispose des packages DBMS_XMLDOM et DBMS_XMLGEN.

Le seul problème c’est qu’il faut installer l’option complete pour pouvoir utiliser uniquement deux package … heureusement il existe une solution alternative : SYS_XMLGEN et SYS_XMLAGG , fournis en standard avec le moteur Oracle.

Petit exemple :

SELECT SYS_XMLGEN(email)
FROM employees
WHERE employee_id = 205;

SYS_XMLGEN(EMAIL)
——————————————————————-
<?xml version=”1.0”?>
<EMAIL>SHIGGINS</EMAIL>

Pas mal … mais peux mieux faire :)

Maintenant, on peut utiliser SYS_XMLAGG pour générer un ensemble de résultats :

SELECT SYS_XMLAGG(SYS_XMLGEN(last_name))
FROM employees
WHERE last_name LIKE ‘R%’;

SYS_XMLAGG(SYS_XMLGEN(LAST_NAME))
——————————————————————–
<ROWSET>
<LAST_NAME>Raphaely</LAST_NAME>
<LAST_NAME>Rogers</LAST_NAME>
<LAST_NAME>Rajs</LAST_NAME>
<LAST_NAME>Russell</LAST_NAME>
</ROWSET>

En suite il ne reste plus qu’a générer le fichier, avec un UTL_FILE par exemple…

a+ !