oui nous pouvons certainement faire cela mais avant cela a laissé nous s'ajouter corrigent/messages de notation au code de fonction aussi bien à l'unerstand que la ligne donne à l'erreur. Employer le code ci-dessous une exécution l'essai encore et me donner que le message de notation a produit ce qu'obtenez vous sur l'écran.
CRÉER OU REMPLACER LE PROCÉDÉ GEO_COUNT_DB_LONG_SIZE
est
le log_id_cursor de curseur est
choisir to_char (log_id) à partir des notations
là où sti_casetype dedans (
choisir le sti_casetype
des ford_acs_casetypes
là où transition_phase = « DB »
) ;
nombre de local_log_id ;
long_desc_length nombre (20.0) de/* ; *
nombre de long_desc_length ;
my_err varchar2 (100) ;
commencer
ouvrir le log_id_cursor ;
chercher le log_id_cursor dans le local_log_id ;
my_err : = ' après fetch';
tandis que log_id_cursor%found
boucle
my_err : = ' avant l'appel de fonction pour obtenir le length';
choisir find_length3 (local_log_id) dans le long_desc_length à partir des notations OÙ LOG_ID = local_log_id ;
my_err : = ' après l'appel de fonction pour obtenir le length';
insertion dans (le case_no, field_size) les valeurs geo_field_count2 (local_log_id, long_desc_length) ;
my_err : = ' après insertion à l'autre table';
commettre ;
chercher le log_id_cursor dans le local_log_id ;
finir la boucle ;
exception quand d'autres alors
dbms_output.put_line ('je suis dans l'exception : '|| my_err) ;
dbms_output.put_line ('erreur : '||sqlerrm) ;
dbms_output.put_line (« code d'erreur : » || sqlcode) ;
extrémité ;
/
créer ou remplacer la fonction Find_Length3 (le nombre de geo_log_id)
renvoyer le nombre
est
clob X ;
y longtemps ;
my_err varchar2 (100) ;
commencer
dbms_lob.createtemporary (x, faux) ;
my_err : = ' FONCTION : après createtemporary';
choisir le long_desc dans y à partir des notations où log_id = geo_log_id ;
my_err : = ' FONCTION : après select';
X : = to_clob (y) ;
my_err : = ' FONCTION : après to_clob';
dbms_lob.getlength de retour (x) ;
my_err : = ' FONCTION : après getlength';
dbms_lob.freetemporary (x) ; --> la note, ceci n'obtiendra pas exécutée As
-- c'est après le rapport de retour.
exception
quand d'autres alors
dbms_output.put_line ('exception de fonction d'intérieur : '|| my_err) ;
dbms_output.put_line ('erreur de fonction d'intérieur : '||sqlerrm) ;
dbms_output.put_line (« code d'erreur de fonction d'intérieur : » || sqlcode) ;
extrémité ;
/