Avatar billede dl74 Nybegynder
27. juni 2005 - 16:34 Der er 10 kommentarer og
1 løsning

Dokumentere scriptafvikling

Skal til at dokumentere alle scripts der afvikles mod basen og har tænkt mig at gøre det ved at spoole til en log fil.

Det fungerer fint, så længe jeg kun udfører DML, men i det øjeblik jeg benytter DDL(creater/replacer en procedure eller tabel), så skrives der intet i loggen.

Så hvordan dokumenterer jeg alt hvad scripts'ne gør, uanset om der er tale om DML,DDL eller DCL for den sags skyld.

Hvis nogen har bedre måder/forslag til at dokumentere scripts på er jeg åben for forslag.
Mit script i dag ser nogenlunde sådan ud:

SET ECHO ON
SET SERVEROUTPUT ON
SET HEAD ON
SET FEEDBACK ON
SET WRAP ON
SET PAGESIZE 0
SET LINESIZE 500

WHENEVER OSERROR EXIT ROLLBACK;
WHENEVER SQLERROR EXIT ROLLBACK;

SPOOL ..\blahblah.log
@..\blahblah.sql
@..\compile
@..\compile
@..\compile
commit;
SPOOL OFF
EXIT
Avatar billede pgroen Nybegynder
28. juni 2005 - 07:51 #1
Det burde ikke betyde noget, om det er DML eller DDL.

Er du sikker på at dine 'sub-scripts' (blahblah.sql osv.) ikke indeholder noget
SET ECHO OFF, SPOOL, eller noget lignende...?
Avatar billede pgroen Nybegynder
28. juni 2005 - 08:08 #2
Du kunne også overveje at bruge system-triggere, fx. 'AFTER DDL' triggeren

Der er et nogenlunde forståeligt eksempel nederst på
http://www.psoug.org/reference/ddl_trigger.html
Avatar billede dl74 Nybegynder
30. juni 2005 - 10:24 #3
Der er selvfølgelig ingen echo/spool off sætninger i de scripts jeg kalder...
System triggere er ikke en mulighed jeg ønsker at benytte.
Avatar billede qualjyn Nybegynder
12. juli 2005 - 08:17 #4
Jeg er ikke helt sikker på jeg er med... Jeg har prøvet at skrive lidt i min SQLPlus, og ud fra dit eksempel ovenfor, så har jeg da DDL med?

-------------------------------------------------------------------
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production
With the Partitioning, OLAP and Data Mining options

dwh_dsa@DATA10P> set echo on
dwh_dsa@DATA10P> set serveroutput on
dwh_dsa@DATA10P> set head on
dwh_dsa@DATA10P> set feedback on
dwh_dsa@DATA10P> set wrap on
dwh_dsa@DATA10P> set pagesize 0
dwh_dsa@DATA10P> set linesize 500
dwh_dsa@DATA10P> whenever oserror exit rollback;
dwh_dsa@DATA10P> whenever sqlerror exit rollback;
dwh_dsa@DATA10P> spool minoraclelog.log
dwh_dsa@DATA10P> select * from dual;
X

1 row selected.

dwh_dsa@DATA10P> @testscript.sql
dwh_dsa@DATA10P> create table oracle_doc2 (id number);

Table created.

dwh_dsa@DATA10P> exit
-----------------------------------------------------------------
og så ser min logfil således ud:
-----------------------------------------------------------------
c:\storage>type minoraclelog.log
dwh_dsa@DATA10P> select * from dual;
X





1 row selected.

dwh_dsa@DATA10P> @testscript.sql
dwh_dsa@DATA10P> create table oracle_doc2 (id number);

Table created.

dwh_dsa@DATA10P> exit
-----------------------------------------------------------------

Og det er ikke dette du ønsker, eller hvordan skal jeg forstå det?

/Kim
Avatar billede dl74 Nybegynder
12. juli 2005 - 09:46 #5
Så er det jo at jeg bliver nødt til selv at lave samme test og her konkluderer jeg at min log fil kun indeholder en brøkdel af det som din har.
Det leder mig samtidig til løsningen på mit problem: Nemlig at jeg i tidernes morgen satte en "-s" option på mit kald til sqlplus for at undgå og se sqlplus vinduet når jeg kørte mine scripts. Fjerner jeg dette -s så kan den pludselig både vise dml og ddl.
Du løste jo ikke direkte mit problem, men ledte mig på sporet, derfor får du pointene alligevel, måske kan du så tilgengæld vise mig en måde, hvorpå jeg kan undgå at sqlplus vinduet popper op uden at skulle bruge denne -s option.
Avatar billede dl74 Nybegynder
12. juli 2005 - 09:52 #6
Sorry, jeg var logget ind med firefox og kunne ikke få lov at give dig pointene da drop down boksen ikke virker i firefox.
Jeg ved ikke lige hvordan jeg kan give dig pointene, men kan jeg ikke oprette en ny case som du bare svarer på...?
Avatar billede qualjyn Nybegynder
12. juli 2005 - 09:55 #7
Nu valgte du jo at give alle point til dig selv, men jo - det kan godt lade sig gøre. Hvordan man gør det i SQLPlus selv ved jeg ikke, men det er simpelt at lave et lille "wrapper" program i .NET (sikkert også i andre sprog), der "gemmer" vinduet for brugeren. Men gør det noget, at der er et dos-vindue indtil scriptet er færdigt?
Avatar billede qualjyn Nybegynder
12. juli 2005 - 09:56 #8
sure - no prob :)
Avatar billede qualjyn Nybegynder
12. juli 2005 - 10:04 #9
Hvornår ville du oprette det ekstra spørgsmål?

/Kim
Avatar billede dl74 Nybegynder
12. juli 2005 - 10:06 #10
Det er gjort
Avatar billede dl74 Nybegynder
12. juli 2005 - 10:06 #11
Samme titel : Dokumentere Scriptafvikling
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester