utiliser le débugger de forms

En passant

Pour une application forms mode web

  • Dans une application form web. ajouter dans l’url »&DEBUG=YES »
  • lancer l’application web et relever l’hôte et le port (ne fermé pas la pop-up)
  • puis sous forms builder faire ‘attacher debuggeur’ et y renseigner les champs par ce que vous avez saisi précédemment
  • et sous l’application web répondre YES a la question de débugage qui donne les info de l’hôte et du port

donc si on ouvre un fmb « public » et que l’on met un point d’arrêt (sans sauvegarder ou compiler) application web vas s’arrêter et forms builder vas ce mettre en mode debug.

création d’un fichier CSV en SQL brut

voici les base pour créer un fichier CSV depuis un script SQL

SET PAGES 9999
SET LINE  1000
REM on n'affiche pas les titres de colonnes et l’entête de page
SET HEADING OFF
REM on n'affiche aucun text
SET ECHO OFF
SET FEEDBACK OFF
SET UNDERLINE OFF
SET HEADSEP OFF
REM on ne renvoi rien au terminal
SET TERMOUT OFF
REM choix du séparateur
SET COLSEP ';'
REM on retire les espace de fin de ligne du fichier SPOOL
SET TRIMS ON
 
Col DATEJOUR new_value DATEJOUR;
SELECT To_Char(SysDate, 'YYYYMMDD_HH24MI') DATEJOUR FROM Dual;
 
Spool E:\mon_repertoire\fichier_&DATEJOUR..csv;
 
REM on écrit le titre des colonnes qu'on veut
REM facultatif, car on pourrais aussi garder le nom des colonne du select avec HEADING ON
PROMPT  macol1; macol2; macol3
 
REM le select
SELECT  col1, col2, col3 FROM ma_table t1 ;
 
spool off;

création d’un fichier plat avec UTL_FILE

utl_file est un package oracle permettant de créer un fichier,

Pour info la procédure UTL_FIL.FOPEN permet d’ouvrir un fichier de 3 façon différente
« R » le fichier est ouvert en lecture (Read)
« W » le fichier est ouvert en écriture (Write)
« A » le fichier est ouvert en ajout (Append)

SET TERMOUT ON
SET serveroutput ON
SET serveroutput ON SIZE 100000
 
DECLARE
 
   CURSOR C_donnees IS
      SELECT  col1, col2, col3
      FROM table1;
 
   w_sysdate varchar2(20);
   w_repertoire varchar2(64);
   w_fichier varchar2(80);
   l_fichier_log      utl_file.file_type;
BEGIN
   -- INITIALISATION DES VARIABLES ---
   -----------------------------------
   SELECT To_Char(SysDate, 'YYYYMMDD_HH24MISS') DATEJOUR INTO w_sysdate FROM Dual;
   w_repertoire := '\\rep1';
   w_fichier := 'extraction_'||w_sysdate||'.csv';
   --  ouverture du ficher ---
   dbms_output.put_line('Début de la boucle');
   l_fichier_log  := utl_file.fopen( w_repertoire, w_fichier, 'A');
   --  PARCOUR LE SELECT ---
   -------------------------------------
   FOR r_donnees IN c_donnees
   LOOP
      -- ecriture des lignes du select dans le fichier
      utl_file.put_line(l_fichier_log, r_donnees.col1 || ';' || r_donnees.col2    || ';' || r_donnees.col3 );
   END LOOP;
   ---------    fermeture des fichiers et fin    ----------
   UTL_FILE.fclose_all;
   dbms_output.put_line('FIN du script');
END; -- fin de la procédure
/

Gunzip dans un autre emplacement

On m’a demander comment on peut décompréser dans un autre répertoire, en fait c’est sur le même principe que compresser un dossier et de mettre le résultat dans un autre répertoire.
Il suffit d’utiliser l’option -c qui envoie le résultat de la commande à l’affichage, il reste plus qu’a le redirigé dans un fichier.

Compression :
gzip -c [fichier ou répertoire] > [mon fichier.gz]

Décompression :
gunzip -c [fichier ou répertoire] > [mon fichier.gz]

Note : la commande « gunzip » est identique à « gzip -d »