27. juni 2005 - 16:34Der 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
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);
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.
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å...?
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?
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.