Fråga : PrivateDisk volym för beställaresäkerhetslösning 8.21 på ThinkPad

Det verkar att beställaresäkerhetslösning 8.21 inte stöttar PrivateDisk volymer. Finns det något arbete runt om lösningen som skapar privata säkrade volymer på den ThinkPad bärbar dator?

THanks
" klar "

Svar : PrivateDisk volym för beställaresäkerhetslösning 8.21 på ThinkPad

Ditt kodifiera är REKO, men jag skulle rekommenderar några ändringar:

Det finns inte något behov av att göra detta:
välj in i ERR_MSG från dubbel;
Felet är i dessa variabler: SQLCODE och SQLERRM, så

UNDANTAG
   NÄR DUP_VAL_ON_INDEX DÄREFTER  -- handtagdubblett antecknar fel

       GrabErr (SCRT_NAME, SQLCODE||' ',||SQLERRM);
      ROLLBACK;   -- Jag har tillfogat denna, därför att i ett tillvägagångssätt GrabErr det ought att finnas den AUTONOMA TRANSAKTIONEN

   NÄR ANDRA DÄREFTER  -- behandlar alla andra fel
       
       GrabErr (SCRT_NAME, SQLCODE||' ',||SQLERRM);
   
       ROLLBACK;
AVSLUTA;

I den AUTONOMA TRANSAKTIONEN för tillvägagångssättGrabErr bruk.
Du kan också definiera dina egna applikationfel.
Är här mer om undantagsbruk:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/errors.htm#i7014

Om du önskar att veta fodra var felet uppstår därefter, tillfoga en variabele.g. n_debug:

FÖRKLARA
SCRT_NAME VARCHAR2 (400): = ”InsRecOnMytable.sql”;
    n_debug PLS_INTEGER: =0;

BÖRJA
    n_debug: =1;
  Mellanlägg in i myschema.mytable (SCHEMA, KÄNT, ANMÄRKNINGEN, ORACLE_TYPE, FUNCTIONAL_TYPE, ÄGAREN, DETAIL_OWNER, IS_DYNAMIC, DISPLAY_NAME, ENTITY_NAME)
     värderar (”myschemaen”, ”mytable”, ”tar prov bordlägger 1”, ”BORDLÄGGER”, ”GRUNDLÄGGANDE”, ”PRODUKTEN”, ”PRODUKTEN”, 0, ”tar prov 1”, ogiltigt);

    n_debug: =2;

  Mellanlägg in i myschema.mytable (SCHEMA, KÄNT, ANMÄRKNINGEN, ORACLE_TYPE, FUNCTIONAL_TYPE, ÄGAREN, DETAIL_OWNER, IS_DYNAMIC, DISPLAY_NAME, ENTITY_NAME)
     värderar (”myschemaen”, ”mytable”, ”tar prov bordlägger 2”, ”BORDLÄGGER”, ”BASIC1”, ”PRODUCT1”, ”PRODUCT1”, 1, ”tar prov 2”, ogiltigt);

    n_debug: =3;
  begå;

 
  GrabErr (n_debug, SCRT_NAME, ”framgångar);

AVSLUTA OM;

UNDANTAG
        GrabErr (n_debug, SCRT_NAME, SQLCODE||' ',||SQLERRM);
       ROLLBACK;

   NÄR ANDRA DÄREFTER  -- behandlar alla andra fel
       
       GrabErr (n_debug, SCRT_NAME, SQLCODE||' ',||SQLERRM);
   
       ROLLBACK;
AVSLUTA;

Jag gör den hitåt. Du kan också skapa ett tillvägagångssätt med matar in parametern SCRT_NAME, och i stället för skriva dig kan använda tillvägagångssättet.

Jag hoppas ska denna är lite en hjälp för dig.
Andra lösningar  
 
programming4us programming4us