BEREGNING AF DANSKE HELLIGDAGE OUGDK ORACLE8 GIS (GEEKY INTERNAL STUFF): PHYSICAL DATA STORAGE INTERNALS

Størrelse: px
Starte visningen fra side:

Download "BEREGNING AF DANSKE HELLIGDAGE OUGDK ORACLE8 GIS (GEEKY INTERNAL STUFF): PHYSICAL DATA STORAGE INTERNALS"

Transkript

1 Juni 2001 Nr 6, Årgang 2 ISSN Pris: kr. 125,00 ex moms #6 OUGDK DBA SIG Dato for næste møde er endnu ikke fastlagt. Designer SIG Næste møde: juni 2001 Developer SIG Dato for næste møde er endnu ikke fastlagt. Data warehouse SIG Dato for næste møde er endnu ikke fastlagt. Web SIG Gruppen er lukket ned indtil en ny koordinator er fundet. NYHEDER Oracle databasen er #1 til CRM FastForward Mobile and Corporate Directory Nato implementerer E-Business Suite Microsoft går efter Oracle og Sun Langsomt salg de næste 2-3 kvartaler Ellison peger på efterfølger.now overhaler.net Oracle #1 i sikkerheds-certificering Oracle annoncerer idevelop2001 Online SAP og Yahoo går sammen om at udvikle portal software eweek bekræfter at ias9i giver øget performance Ellison får forbud mod at lande jetjager Oracle vil bygge digitalt hospital 2. generation af New Internet Computer Oracle vil fyre 2% af medarbejderne BEREGNING AF DANSKE HELLIGDAGE Danske helligdage er ikke noget man beregner. Dem slå man op i en tabel. Eller gør man? Ta årskalenderen fra sekretæren! Her får du en PL/SQL løsning, som beregner dem. Til og med væsentligt hurtigere end de kan SELECT es fra en tabel. Anders Frandsen ORACLE8 GIS (GEEKY INTERNAL STUFF): PHYSICAL DATA STORAGE INTERNALS This month, Dan will focus on some internals of the Oracle RDBMS, primarily physical storage of data. This article will concentrate on data blocks: how they re created, how space is really managed inside a tablespace, and some other geeky internal stuff of interest in the physical storage of data. Dan Hotka TOP-N QUERY At finde de 20 rækker fra en tabel med de største eller mindste værdier i en given kolonne har i mange år ikke været helt lige til. Denne artikel belyser hvorledes det alligevel kan klares med relativt enkle midler. Martin Jensen SIMULATING OPS$ USERS THROUGH A BROWSER If your business is running an intranet on an MS network, it is possible to authenticate MS users as Oracle users without prompting them for a second login name and password. Unfortunately, Oracle only supports this for client/server applications like Forms and Reports. This presentation will show you how to authenticate MS users running Web applications through a browser as well. Marc de Oliveira CUTTING CODE WITH STYLE PART II This article is part II of a two part series that explains a recommended coding style that is easy to write, read and maintain. This issue will focus on various structures of SQL and PL/SQL including SELECT, INSERT, IF and LOOPS. Scott Hollows

2 Leder BRUGERGRUPPENS EVOLUTION Marc de Oliveira, ansvarshavende redaktør. Trods en meget svær begyndelse er det nu lykkedes at udgive seks numre af Danmarks mindst ringe Oracle-tidsskrift. Dette har ikke kunnet lade sig gøre uden en masse frivilligt arbejde, villige annoncører, engagerede artikelforfattere og ikke mindst den støt voksende skare af abonnenter. OracleEkspert sendes nu ud til over 150 abonnenter i Danmark og enkelte andre europæiske lande! Specielt skal Miracle A/S, DBVision, ehuset, Quest Software og de 12 foredragsholdere takkes for deres store opbakning til OracleEkspert-konferencen, der blev afholdt den 26. april, som gjorde dagen til en stor oplevelse for alle os, der deltog. Ifølge deltagernes evaluering er ønsket om en gentagelse af konceptet enormt med en score på 91 (ud af 100). Bedømmelsen af indlæggenes indhold ligger også langt over middel med en score på 80%. Men selv om OracleEkspert-konferencen var en stor succes, så har bladet også fået mange knubs i løbet af sit første leveår. 150 abonnenter vidner om, en stor interesse for bladet. Det er dog alligevel ikke nok til at finansiere bladet, så vi har derfor været meget afhængige af annoncørernes velvilje til at betale en stor del af omkostningerne. Men som det også kan ses af de første seks numre, har annoncørerne ikke ligefrem stået i kø for at købe spalteplads. Så har dele af OUGDKs bestyrrelse langet ud efter bladet. Der har været kritik af, at navnet OUGDK blev placeret så centralt på forsiden, at det kunne give læsere den idé, at bladet var udgivet af brugergruppen. Kritikken handler også om at ved at bladet betaler for artiklerne er det blevet alt for svært for brugergruppen at få folk til at stille op til OUGDK-møderne uden betaling. Og endelig er vi blevet kritiseret for at have taget initiativ til Oracle- Ekspert-konferencen, fordi brugergruppen har været arrangør af en konference på færgen Sjælland for otte år siden. Også sidste nummers leder fremkaldte stærke reaktioner blandt læserne. Heldigvis kom der også positive tilbagemeldinger fra læsere, som var enige i, at virksomhederne vitterligt nedprioriterer deres faste medarbejder i forhold til hvad de er villige til at betale for konsulenter. Men vi fik også en stribe reaktioner fra konsulenter, som følte at artiklen var et angreb på dem og deres ret til at kræve den betaling, som virksomhederne var villige til at give. Det mest farverige udfald og den efterfølgende brevveksling er gengivet i forkortet version i debatkolonnen Svar. Oracle Danmark, som fra begyndelsen var en meget aktiv støtte for bladet via nyheder, annoncer, adresselister mv uden hvilke bladet aldrig kunne være blevet til noget, er efter Henrik Bustrups flytning til England, tilsyneladende blevet mindre venligt stemt overfor projektet. Selv Martin Jensens deltagelse i OracleEkspert-konferencen var truet. Som det kan ses af ovenstående, har det altså ikke blot været en dans på roser at få Danmarks mindst ringe Oracle-tidskrift på benene. Og det har ofte undret Deres ydmyge redaktør, at et initiativ som OracleEkspert har så svært ved at slå bredt igennem i Oracle-miljøet. OracleEkspert er blevet til for at støtte alt, hvad der har med Oracle at gøre. Primært skal alle os, som arbejder med Oracle, have styrket vores tekniske viden. Det er også bladets mål at formidle viden om, hvad der strategisk sker omkring selskabet Oracle, og hvad der bliver sagt om det i medierne. Det er også vigtig at alle, som udvikler Oracle-løsninger og udbyder Oracle-ydelser kan delagtiggøre Oracle-miljøet i hvad de kan gøre for os. OracleEkspert er også et godt sted at skabe en dialog med Oracle Danmark (eller USA for den sags skyld), hvor de er på udebane. Et sted, som ikke er kontrolleret af Oracle, hvor debatten mellem Oracle og Oracles brugere sker på lige fod. En sådan debat er i høj grad også i Oracles egen interesse. Endelig er OracleEkspert også et kald til at få OUGDK op af hullerne. Der er mange dygtige Oracle-brugere i Danmark, og de har lyst til at deltage i spændende udbytterige arrangementer. Med indkaldelsen til OUGDKs debatmøde om emnet den 31. maj er der åbnet mulighed for at brugergruppen kan evoluere til at blive en meget mere aktiv spiller i Oracle-miljøet. Det fortjener vi. Well, he hands you a nickel, he hands you a dime, He asks you with a grin if you're havin' a good time, Then he fines you every time you slam the door. I ain't gonna work for Maggie's brother no more. - Bob Dylan (fyldte 60 år i torsdags) Oplag: kopier Udgives af: pythia Information Kongensvej Frederiksberg Danmark Telefon: Fax: Web: www.OracleEkspert.dk Ansvarshavende redaktør: marc de Rettigheder: PYTHIA Information ejer alle rettigheder til indholdet af OracleEkspert. Kopiering af bladet i dele eller helhed må kun ske efter skriftligt samtykke fra PYTHIA Information. PYTHIA Information forbeholder sig rettigheder til at offentliggøre og genudgive de trykte artikler, tips mv, samt at tillade bladets læsere at anvende indholdet til såvel personlige som kommercielle formål. PYTHIA Information kan ikke drages til ansvar for eventuelle fejl og mangler i Indholdet af OracleEkspert. Artikler mv stilles tilrådighed uden garanti af nogen art. Pris: Enkeltnummer DKK 125,00 1 års abonnement dkk 600,00 Ved samtidig køb af minimum 5 kopier til samme adresse (enkeltnummer eller abonnement) gives 40% rabat på den samlede pris. Priserne er excl moms. Annoncer: Annoncer til OracleEkspert nr 6 skal være PYTHIA Information i hænde senest den 11. juli Annoncepriser kan findes på: Password: nwaabiab

3 Mogens Nørgaard: Din leder i nr. 5 er - efter min mening - uden pointe eller konsekvens. Du latterliggører på den ene side konsulent-timepriserne som afsindigt, latterligt, høje. Øh - hvordan fanden kan de være det? Som gammel, halvstuderet stud.polit. må jeg jo tørt konstatere at udbud og efterspørgsel faktisk svarer bedst til hinanden i et marked med åben og megen konkurrence - og det har vi fan'me i IT-konsulentbranchen. Det er kort sagt efter min mening kompelt og fuldstændigt sludder og nonsens du giver udtryk for. Du glemmer den store, logiske konklusion (logisk efter min mening :) ): Folk tager ikke springet ud som selvstændige for at blive rige. Det er iøvrigt en pisse nedladende holdning at åbenbare overfor (alle) os, der har turdet at starte noget selv, hvis jeg skal blive helt direkte overfor dig. Folk tager springet fordi Karl Marx (omsider!) har fået ret: Menneskene bør og ønsker at eje produktionsmidlerne. Og det gør de idag - hvis de vil, og hvis de tør. For produktionsmidlerne er deres viden/hjerne. Læs mere i bogen Funky Business, hvis du skal have det uddybet. Folk vil ganske simpelt bare være deres egen herre. Sådan som mennesket altid har ønsket sig det.et eksempel: Når folk siger op i det offentlige er det da - bevar os - nogle gange pga. lønnen. Det kunne også tænkes at være pga. manglende muligheder. Eller manglende ledelse. Men de ting er - tror jeg - ikke den udslagsgivende faktor. Det er derimod den manglende evne hos iøvrigt skidegode og -ivrige ledere til at få beslutninger presset igennem systemet. Det er det, der reelt frustrerer folk mest idag. Og hvis folk er deres egen herre kan de helt bypasse det problem og simpelthen bare tage beslutningerne selv. En fed tendens, iøvrigt. Den får hyggeonklerne og "vi-ved-bedst"-socialdemokraterne til at stejle, men faktisk har folk det bedst med at bestemme over sig selv. Marc de Oliveira: Jeg vil give dig ret i at min leder ikke giver nogen færdig løsningsmodel på det problem, som den berører (jeg har også kun en halv side at brede mig på!), men alligevel synes jeg, at den når at synliggøre nogle væsentlige pointer i diskussionen om virksomhedernes holdning til hhv fastansatte og konsulenter, og det er det, som har været min pointe med lederen. Skriv til: Mit udtryk "uhyrlige beløb langt over 1000 kr" anvendes til at beskrive det misforhold der er mellem den fastansattes egen løn og den pris, som hans/- hendes arbejde faktisk kan sælges til. Læst i sammenhæng bruges udtrykket klart til at påvise, at den faste medarbejder får for lidt, frem for at konsulenten får for meget. Dette understreges også andre steder med sætninger om konsulenter som "at få den fulde andel af deres arbejdes værdi" og "[at virksomhederne] betaler den faktiske markedspris for dem". Selvfølgelig er den pris, man kan sælge sin vare for et udtryk for varens værdi. Det vil jeg på ingen måde anfægte, og det mener jeg heller ikke, at jeg på nogen måde gør i lederen. At sige, at jeg (personligt) er nedladende overfor konsulenter er absurd, da jeg jo netop foretager mig en række ting, som selvstændig. Desuden synes jeg da, at jeg har et rigtigt godt forhold til en lang række selvstændige. Jeg kan på alle måder forstå de bevæggrunde, der får folk til at vælge freelance-karrieren. Som du selv nævner, gør jeg selv opmærksom på fordelene ved at dele specialviden i et resourceknapt miljø. Det er bestemt ikke min hensigt at fornægte værdien (endog nødvendigheden) af at virksomheder deler specialiseret viden via konsulenter. Men den diskussion ligger udenfor lederens tema. Jeg forsøger ikke noget sted i lederen at sige noget om, hvorvidt højt specialiserede folk er mere værd end mindre specialiserede folk eller ej. Det jeg forsøger at gøre opmærksom på, er at den samme arbejdskraft kan sælges som konsulentydelse eller via fastansættelse, og at så vel virksomheder som lønmodtagere alt andet lige (pris og kvalitet), ville have mere glæde af hinanden ved at have en mere fast tilknytning til hinanden. Jeg angiver netop også "mere selvbestemmelse og større frihed til at vælge deres arbejdsopgaver" som grunde til at blive freelance. Som allerede nævnt går min kritik på virksomhedernes dispositioner og slet ikke mod de folk, der enten vælger fastansættelsen eller freelance-livet. Mogens Nørgaard: OK, jeg læste det også som eet af dine forslag, at virksomhederne skulle bruge pengene på deres medarbejdere fremfor på konsulenter. Det kan man jo ikke være uenig i, for det ville jo åbenlyst være smartere. Men realiteterne er, at vi og vores branche (og sgu' sikkert også vores samfund) er på vej helt væk fra de store enheder og hierakier og hen mod en tilstand, hvor individet tager ansvaret for sig selv og sit liv i langt højere grad (på godt og ondt). Trenden har jo været der i 10 år i USA. Dem, der kan klare sig, laver næsten alle sammen noget selvstændigt virksomhedshalløj. Det er den tendens ("Marx fik ret"), der er virkeligheden, og den egentlige årsag til at folk søger væk (tror jeg). Ikke pengene eller ITudfordringerne. Derfor er det forkerte ting du sætter op mod hinanden. Rent økonomisk aner jeg efterhånden ikke, hvad en virksomhed burde foretrække. Der kan virkelig siges for og imod. Men man kan ikke sige Svar Fortsætter på side 14

4 Tools Teknisk Artikel BEREGNING AF DANSKE HELLIGDAGE Af Anders Frandsen. Anders arbejder som freelance konsulent for ZofteX ApS. Han har over 10 års erfaring med Oracle, primært med C (OCI), Oracle 7 / 8, SQL, PL/SQL og Forms. Han kan kontaktes på Hvorfor beregne? Alternativet til beregning, er kalenderopslag, typisk via en tabel. Den løsning indebærer 3 ting, jeg hader: 1. Vedligeholdelse (indtastning af næste års helligdage) 2. Mulighed for fejlindtastning 3. Datalogisk klamp! Alligevel er tabelopslag den eneste løsning, jeg har oplevet i Oracle-verden. Uanset om der skal beregnes bankdage eller fridage altid opslag i en tabel. Her følger mit bud på en beregningsløsning. Problemet Problemet opstod da man (Mayland s grundlæggere?) besluttede, at placeringen af Skærtorsdag, Langfredag og alle de andre uregelmæssigt faldende helligdage, skulle afhænge af placeringen af Påskedag, der som bekendt ikke falder på samme dato hvert år. Historien bag den Gregorianske kalender, er der sikkert mange(?) der finder interessant jeg gør ikke, og vil derfor ikke komme med en længere udredning om den. Hvis du er interesseret, kan du søge på nettet - du vil blive overrasket Kort fortalt: Kan man placere påskedag, kan man også placere alle andre danske helligdage. Påskedag falder på den første Søndag efter den første fuldmåne efter den 21. marts. Hvis denne fuldmåne falder på en Søndag, skal det være den følgende Søndag. Der findes mange forskellige algoritmer til at udregne ovenstående, jeg har valgt den første jeg fandt på nettet, som udemærker sig ved at være kompakt og overskuelig (læs: hurtig). Af forskellige (primært historiske) årsager, dækker algoritmen kun år Algoritmen er af den tyske matematiker Carl Friedrich Gauss ( ). PL/SQL løsning, version 1 Version 1 beregnede ved hvert eneste kald, om den aktuelle dato befandt sig I risikozonen, dvs. marts juni. Hvis dette var tilfældet, udregnede jeg placeringen af påskedag og de andre helligdage, for at se om der var et hit. Løsningen virkede, men det vil være løgn at påstå den var hurtig PL/SQL løsning, version 2 Løsningen var som med så meget andet i disse tider caching! Ved at udregne et helt år af gangen, og gemme udregningerne til efterfølgende kald, kan der spares mange beregninger. Jeg benytter en PL/SQL collection (PL/SQL tabel), hvor hvert år får tildelt 1000 elementer (elementer i en collection behøver ikke være fortløbende, og nye elementer kan indsættes før og efter eksisterende elementer). F.eks. vil år 1997 få tildelte elementerne På den måde kan alle år (som understøttes af Carl Friedrich Gauss algoritmen) være i en enkelt collection. Første element i hvert årsinterval, dvs. element for år 1997, benyttes som flag for om året allerede er beregnet. Dvs. ved første opslag på en dato i år 1997, vil værdien af element fortælle at året ikke er beregnet. Derefter beregnes hele året, og flaget I element sættes. Fremtidige opslag på datoer i år 1997 benytter herefter de allerede beregnede værdier. Der er ingen grund til at fylde 365 elementer ind for hvert år, vi kan nøjes med at udfylde de specielle datoer. Mangler et element (medfører exception NO_DATA_FOUND), er der tale om en almindelig dato. Det samlede forbrug af memory, bliver derfor ubetydeligt selv om der spørges til datoer i samtlige de 600 år som algoritmen dækker. Jeg vil ikke vise hele koden her (den kan downloades fra men vil dog vise et centralt udsnit, nemlig de 5 liniers kode, som er alt hvad der skal eksekveres for at besvare et spørgsmål af typen: Hvilken datotype er datoen 16/4-2001? Omformet til et kald til PL/SQL pakken Dates (bliver beskrevet senere) bliver det ldatetype:= Dates.dateType( c_normalday CONSTANT INTEGER := 0; c_grundlovsdag CONSTANT INTEGER := 1; -- Fra og med 1849 c_1maj CONSTANT INTEGER := 2; -- Fra og med 1891 c_christmaseve CONSTANT INTEGER := 3; -- Juleaften c_newyeareve CONSTANT INTEGER := 4; -- Nytårsaften c_saturday CONSTANT INTEGER := 5; c_sunday CONSTANT INTEGER := 6; c_newyearday CONSTANT INTEGER := 7; -- Nytårsdag c_palmsunday CONSTANT INTEGER := 8; -- Palme søndag c_holythursday CONSTANT INTEGER := 9; -- Skærtorsdag c_goodfriday CONSTANT INTEGER := 10; -- Langfredag c_eastersunday CONSTANT INTEGER := 11; -- Påskedag c_eastermonday CONSTANT INTEGER := 12; påskedag c_greatprayer CONSTANT INTEGER := 13; -- Store Bededag c_ascensionthursday CONSTANT INTEGER := 14; -- Kristi himmelfart c_pentecost CONSTANT INTEGER := 15; -- Pinsedag c_pentecostmonday CONSTANT INTEGER := 16; pinsedag c_christmas CONSTANT INTEGER := 17; -- Juledag c_2christmas CONSTANT INTEGER := 18; juledag Figur 1 4 Juni 2001 OracleEkspert

5 TO_DATE('16/4-2001','dd/mm-yyyy') ); der medfører eksekvering af de centrale 5 liniers kode: lidx:= TO_NUMBER(TO_CHAR(pDate,'yyyy')) * 1000; RETURN gcalendar( lidx + TO_CHAR(pDate,'DDD')); EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN RETURN gcalendar(lidx); Hvis det er første gang der spørges på en dato i et givet år, udføres der betydeligt mere kode (se FUNCTION datetype (pdate IN DATE) RETURN INTEGER FUNCTION datetypetoname (pdatetype IN INTEGER) RETURN VARCHAR2 Funktionen datetype modtager en DATE og afleverer en datetype (INTEGER), som er en af følgende konstanter (alle defineret i package specification): Bemærk grupperingen: 0 Normale dage 1-5 Mulige fridage Danske helligdage. Funktionen datetypetoname oversætter returværdien fra datetype til en streng med det danske navn for dagen. Et eksempel på brugen af begge funktioner ses i figur 2: SQL> SET SERVEROUTPUT ON SQL> DECLARE 2 ldate DATE := TO_DATE(' ','yyyy.mm.dd'); 3 BEGIN 4 FOR i IN LOOP 5 dbms_output.put_line( TO_CHAR(lDate + i,'dd/mm-yyyy') ' = ' 6 Dates.dateTypeToName(Dates.dateType(lDate + i)) ); 7 END LOOP; 8 END; 9 / 06/ = 07/ = Lørdag 08/ = Palme søndag 09/ = 10/ = 11/ = 12/ = Skærtorsdag 13/ = Langfredag 14/ = Lørdag 15/ = Påskedag 16/ = 2. påskedag 17/ = 18/ = PL/SQL procedure successfully completed. Figur 2 Dates.sql), men efterfølgende kald med dato i samme år (i eksemplet 2001), vil nøjes med ovenstående 5 linier. Dates pakken Jeg har valgt at lave en løsning, der er så generisk som muligt, da der er stor forskel på hvordan man ønsker at anvende sin helligdagsviden. Bankdage udregnes på en måde, fridage på en anden (endda forskellig fra organisation til organisation, branche til branche etc.). Bl.a. af hensyn til fridagsberegning, understøtter Dates pakken også 1. maj og Grundlovsdag. Tanken er, at man laver en wrapper funktion, dvs. pakker kald til Dates pakken ind i sin egen funktion, der passer 100% til det aktuelle behov. Dates pakken består af 2 funktioner: Performance test SQL> CREATE TABLE datetypes (thisdate DATE, type NUMBER); For at dokumentere at beregning er hurtigere end opslag i en pre-kalkuleret tabel, har jeg sammenlignet performance mellem de 2 metoder. Først den tabel-baserede metode. Tabellen oprettes, fyldes med data og indekseres (se figur 3): Den anonyme PL/SQL blok indsætter 2192 rækker, fra d. 1/ til og med d. 31/ Da vi ikke SQL> DECLARE 2 ldate DATE := TO_DATE(' ','yyyy.mm.dd'); 3 BEGIN 4 WHILE ldate < TO_DATE(' ','yyyy.mm.dd') LOOP 5 INSERT INTO datetypes VALUES(lDate,0); 6 ldate := ldate + 1; 7 END LOOP; 8 END; 9 / SQL> CREATE INDEX datetypes_i ON datetypes(thisdate, type); Figur 3 OracleEkspert Juni

6 skal bruge kolonnen type til noget fornuftigt, indsættes blot 0. Hvis tabellen virkelig skulle bruges til opslag, skulle type naturligvis indeholde en værdi der beskrev den pågældende dato. Hvor hurtigt er tabelopslag så? Vi prøver med følgende, som slår alle 2192 datoer op 1000 gange (se figur 4)! Begge målinger er angivet som gennemsnittet af 3 kørsler. Omsat til procent er beregning ca. 51% hurtigere end tabelopslag. Når man tænker på hvor meget der foregår i kernen ved eksekvering af et SELECT udtryk - så er 51% ikke meget... Konklusion Beregning frem for tabelopslag, er klart at foretrække. SQL> SET TIMING ON SQL> DECLARE 2 ltype INTEGER; 3 ldate DATE; 4 BEGIN 5 FOR I IN LOOP 6 ldate := TO_DATE(' ','yyyy.mm.dd'); 7 WHILE ldate < TO_DATE(' ','yyyy.mm.dd') LOOP 8 SELECT /*+ INDEX(dateTypes datetypes_i) */ type INTO ltype 9 FROM datetypes 10 WHERE thisdate = ldate; 11 ldate := ldate + 1; 12 END LOOP; 13 END LOOP; 14 END; 15 / PL/SQL procedure successfully completed. real: Figur 4 Så benytter vi i stedet beregning, vha. funktionen Dates.dateType: SQL> DECLARE... samme kode som før, men linierne 8 10 er udskiftet med følgende linie 8 ltype := Dates.dateType(lDate); / PL/SQL procedure successfully completed. real: Vi slipper for irriterende vedligeholdelse og så er det hurtigere. Men samtidigt har ovenstående performancetest, fået mine øjne op for hvor langsomt et sprog PL/SQL er Med tanke på hvor lidt kode, der typisk udføres ved et enkelt kald, burde det være langt hurtigere. Måske skulle man alligevel begynde at bruge Java til sine beregningstunge (?) opgaver. Måske skulle jeg teste Java i forhold til PL/SQL? Det ka kun gå for langsomt! PL/SQL pakken Dates kan downloades fra 6 Juni 2001 OracleEkspert

7 ORACLE8 GIS (GEEKY INTERNAL STUFF): PHYSICAL DATA STORAGE INTERNALS Dan Hotka is a Director of Database Field Operations for Quest Software. He has more than 20 years of experience in the computer industry and more than 15 years of experience with Oracle products. He is an acknowledged Oracle expert with Oracle experience dating back to the Oracle v4.0 days. He has co-authored the popular books Oracle Unleashed, Oracle8 Server Unleashed, Oracle Developer Unleashed, and Special Edition Using Oracle8/8i from SAMS Publications and is frequently published in Oracle Professional. He regularly speaks at Oracle conferences and user groups around the world. The relationship of table objects storage (segments) is that there s one segment header and one or more extents, which are made up of one or more contiguous data blocks. The first block of each Oracle segment is the segment header. A segment is made up of at least two blocks - the segment header and the initial extent. CREATE TABLE X (C NUMBER) Storage (INITIAL 1) creates a segment with two blocks. Block size The block size is defined at "CREATE DATABASE" time and can t be easily changed. The default block size for most systems is 2K. Oracle8 supports block sizes from 2K to 64K. Always choose a block size that s an even multiple of the operating system file system block size. If you were to make the Oracle block size smaller than the operating system block size, then extra data would always be read with each read operation. If the Oracle block size isn t an even multiple of the operating system block size, then there will be wasted disk space in the operating system file system. There s a distinct tradeoff between block size and performance. Larger blocks are useful for data warehouse and decision support systems. More data is read into memory with a single read operation, and more index leaf pointers can be stored in a single read operation. If an application has lots of updates and deletes (DML), then smaller blocks are useful. There will be less contention for rows because there will be fewer rows per block. You can query the X$KVIS view to see the actual values of db_block_size. Block header layout All Oracle blocks have similar attributes (see Figure 1). All blocks contain a header area. This header consists of a block type, a block format, relative database address (DBA), SCN, SCN sequence number, a check value, and a tail. These are some important block types: 1 Undo segment header 2 Undo segment block 5 Data segment header 7 Temporary table 11 Data file header Block format refers to whether this is an Oracle7 or an Oracle8 formatted block. The sequence number refers to the order of the blocks within the same SCN. The check value is an optional init.ora setting (DB_CHECK_SUM) that provides integrity checking at the block level. The tail is used as a block consistency check to ensure that the beginning of the block and the end of the block are consistent. This number consists of the SCN + block type + SCN sequence number. There are several methods to visualize or dump the data blocks. In UNIX, use the dd command: dd bs=2k if=/ora8/data/users01.dbf skip=200 count = 5 od -x > pg. In the VMS world, use the DUMP command: DUMP /BLOCKS = (START:<os block #>, END:,os block #>) /OUT = blockdmp.out users01.dbf. The NT world would use HEDIT. A formatted dump can be attained through Oracle via SVRMGR: alter system dump datafile 7 block 201. Since this discussion is about physical storage, this article will discuss the blocks related to physical storage such as segment headers and data blocks. A segment header is always the first block of an object. The segment header has six major areas: extent control header, map header, extent map, and three types of free lists. The extent control header contains the number of extents allocated to this segment, the number of blocks allocated to the segment, DBA of the last block of the extent map (0 if no UNLIMITED EXTENTS is used), number of extent map blocks, high water mark (HWM) extent size, HWM extent number, and HWM block number within the extent. DBA Teknisk Artikel Figure 1. Block Layout Figure 2. Space utilization in a segment OracleEkspert Juni

8 The HWM is the pointer to the DBA of the last block to receive inserts. Blocks below this mark are maintained on free lists. Blocks in extents above this mark have been allocated to the segment but haven t been used yet. Blocks above the HWM are available for SQL*Loader direct load operations, parallel DML, and for inserts once the free list has been exhausted and the HWM has been moved. The map header simply contains DBA information of the next block containing extent map information. The extent map contains the beginning data block DBA and the number of blocks associated with the extent. The size of the extent map is directly related to the block size being used. For example, the extent map will be able to hold 121 extent locations for a 2K block. Oracle7.3 introduced a concept known as unlimited extents. Instead of having the block size constrained by a limited number of extents (such as 121 for a 2K block), Oracle allows for objects to grow and dynamically extend indefinitely by chaining additional blocks to store additional extent map information (see Figure 2). There are three types of free lists that store information about available space within a segment. Master free lists (MFL) contain newly allocated blocks up to the HWM and blocks freed by a committed transaction. Process free lists (PFL) are user-definable (storage parameter FREELISTS N) and are used to reduce contention on the master free list. This list spreads the requests over several blocks. The transaction free list (TFL) holds blocks freed by a particular transaction to see if that same transaction can later use the space. After the commit, this space is then put on the MFL. The MFL contains a flag that says whether the free list is used or not (1 or 0). The segment header also contains the DBA of the first block on the free list chain and the DBA of the last block on the free list chain. The blocks on the free list chain (FLC) will contain a flag indicating that this block is linked to the free list chain and the DBA of the next block on the chain. This information is stored in the cache layer of the data block header. Blocks below the HWM that meets the PCTFREE parameters are managed on the MFL. Finding free space Figure 3 shows how Oracle will look for free space to store a newly inserted row. Oracle searches the uncommitted TFL first. If it finds space, it will use the space; otherwise, it will search the PFL. Once again, if it finds space, it will use the space. Oracle will then search the MFL for free space. If it finds free space, it will move the space to the PFL and use it. Oracle will then search the committed TFLs; if it finds space here, it will move the space to the MFL and begin the whole search process over. If all of this isn t successful, then Oracle will see whether the HWM can be advanced. If it can, it will add this new space to the MFL and search again; otherwise, Oracle will add another extent to the object, advance the HWM, and search the MFL yet again for space. If max extents is hit, then the "max extents exceeded" error is returned; otherwise, the "no more space in tablespace" error is returned. An extent is a contiguous set of blocks as defined by the storage parameter. If the extent size is indicated in bytes, then Oracle will round up the extent size to the nearest multiple of five blocks or to the nearest multiple of the MINIMUM EXTENT storage parameter value (if defined). Oracle will search the dictionary cache first, looking for an exact extent size match. If not found, then it will search the fet$ for an exact or larger extent size match. If no exact match is found, then Oracle will repeat the two searches looking for a larger area. If found, Oracle will use the required extent size from the larger area. If no matches are found, Oracle will coalesce the tablespace and do this whole process again. If again no space is found, Oracle will round down the extent size and try the whole process again. If space still isn t found upon the third loop of this process, Oracle will either extend the tablespace (if option is set) or return an error (see Figure 4). Adjacent unused extents are coalesced together to create larger extents that might satisfy space searches more quickly. Free space can be coalesced via three methods: on demand (as needed during a search, as explained previously), manually "alter tablespace... coalesce," or by SMON. SMON will perform this action for the tablespaces during a space transaction and only if PCTINCREASE is greater than 0 at the tablespace level. Block cache, transaction, and data layers Data blocks also contain a cache layer, a transaction layer, and a data layer. This discussion will be limited Figure 3. Finding free space Figure 4. Dynamic extent allocation 8 Juni 2001 OracleEkspert

9 to data blocks, but it suffices to say that the contents of the data layer are dependent upon the type flag indicating what kind of block this is. The data block contains a header, a table directory, a row directory, row data, and hopefully some free space (see Figure 5). The block header contains the same static block information as all other blocks, as discussed previously. The cache layer contains information about the number of interested transaction lists (ITL) slots, a flag for data or index block, and free list information such as free list flag and next block on the free list (that is, the free list chain). The ITL is used to mark the row locked until the transaction completes. The ITL contains the transaction identifier. The ITL defaults to 1 and is maintained by storage parameters INITRANS and MAXTRANS. The number of ITLs controls how many concurrent DML operations can happen to a particular block. The Transaction layer contains the actual ITL number (or numbers, as determined by INITRANS and MAX- TRANS), the undo address information, a status flag, the number of rows being affected by this transaction, and free space credits. Free space credits holds any space that was freed by an update or delete until the commit actually occurs. ITLs do take space that would otherwise be available for rows. The table directory tracks the tables that have rows in this data block - that is, tables involved in a cluster. Transaction Free Lists (TFLs) are stored in the block as a separate structure and aren t controlled by any external parameters. There are a minimum of 16 per segment, which are created implicitly by Oracle. Each TFL is associated with only one transaction. If the limit of TFLs is reached, then the transaction will wait for a TFL to free. This activity can be monitored with V$WAIT and V$TRANSACTIONS. The row directory contains information about the rows stored in the data block. What s left after rows are added or updated and the block header information is accounted for determines the free space area. As rows are inserted or updated, the row data part grows from the end of the block toward the front. The block header will grow down from the top based on the number of ITLs, rows added, and so forth. This free space is managed by a combination of PCTUSED and PCTFREE storage clause parameters. PCTUSED determines when a block is no longer available for inserted rows. PCT- FREE determines when a block is again available to have inserted rows. Tip: The combination of PCT- FREE and PCTUSED should be 75 or lower. Note that PCTFREE will always default to at least 10 percent, even if it s set lower than 10 percent. Row layout Actual row data is added from the bottom of the free space in a block toward the top. The static part of the row format contains a row flag, a lock byte (ITL entry locking this row), number of columns in this row, and a cluster key indicator (see Figure 6). Then there are a column length (one byte if the length is < 254; otherwise, three bytes) and the actual column data. Trailing null value fields aren t stored. When reading a dump, the next row would be indicated by the presence of another row flag. Some values for row flag include the following: H Head of row piece K Cluster key D Deleted row F First data piece L Last data piece P First column continues from previous location Row migration/row chaining Row migration occurs when an updated row no longer fits into the existing block (see Figure 7). Row chaining occurs when a row is either inserted or updated and it s physically longer than the available block size (see Figure 8). It s been my experience that Oracle will migrate and/or chain rows based on a variety of conditions. Truncate table The truncate command is the quickest way to delete all of the rows from a table. This method of clearing out a table has no recovery. It s fast because it simply sets HWM, MFL, and TFLs to null. If the REUSE option isn t specified (default behavior), all of the extents except for MINEXTENTS are then released back to the tablespace. Full table scans scan through all of the blocks until it reaches the HWM. If objects are loaded with large numbers of rows, then most of the rows are deleted; the table should be reorganized to move the HWM where it belongs rather than leaving it at the end of many empty or almost empty blocks. Direct path loading Direct path loading is a very fast way of loading data into an Oracle database. This method of data loading completely bypasses the Oracle kernel (SGA, background processes, logging, and so forth). Direct path loading happens above the HWM. This method of loading data begins by putting a shared lock on the object being loaded. A temporary segment is then created based on the extent size of the object being loaded. The tablespace must have enough room to accommodate an extent size of the initial and next extent of Figure 5. Data block layout Figure 6. Row layout OracleEkspert Juni

10 Figure 7. Migrated row layout the original table. This temporary segment is populated with the rows, and the extents are then added to the original table, with the HWM moved to the end of these new extents. SQL*Loader and some parallel operations use direct path loading. Temporary segments Temporary segments are needed when Oracle is unable to sort in memory. Create index or select statements that have order by, distinct, group by, or union clauses will cause a sort operation. The INIT.ORA parameter, sort_area_size, defines the amount of memory dedicated for sort operations. When this area is exhausted, then Oracle will use temporary segments to do the sort operation. There are two types of temporary storage: permanent tablespace (the tablespace as we know it) and temporary tablespaces. These are easily created by adding the TEMPORARY clause in the CREATE TABLESPACE command. Tablespaces can be Figure 8. exchanged with the ALTER TABLESPACE command. The basic difference between the two is that SMON will clean up unused temporary segments in a permanent tablespace where the segments are left alone after a sort operation in a temporary tablespace. Also, only temporary segments can exist in a temporary tablespace. This allows the space requirements of sort operations to grow and be maintained throughout the life of the instance. Monitor this sort area via V$SORT_SEGMENT and V$SORT_USAGE. Note: Use a consistent value for initial and next extent size with a PCTINCREASE = 0. Make the extent size a multiple of sort_area_size. Add one db_block size to allow for the segment header in the initial extent. OUGDK Oracle User Group Denmark er en selvstyrende gruppe for Oracle-brugere. Det er for tiden gratis at være medlem, dog skal man have en Oracle-databaselicens for at kunne blive medlem. Gruppen består af en bestyrelse og et antal Special Interest Groups, som afholder møder i Oracle Danmarks lokaler i Ballerup. Indkaldelse til møderne sker via brugergruppens mailliste og via brugergruppens web-side (www.oug.dk). Brugergruppens web-side er for tiden ikke tilgængelig. Designer SIG ens arrangementer kan dog stadig findes på DBA SIG Koordinator: Jean-Marc Pedersen Dato for næste møde er endnu ikke fastlagt. Designer SIG Koordinator: Marc de Oliveira, Næste møde: Juni 2001 Sted: Oracle Danmark, Lautrupbjerg 2-6, 2750 Ballerup Emner for næste møde: Vi forsøger nu at få Lucas Jellema til Danmark (ja, tingene ændrer sig hurtigt i denne tid!). Følg med på Developer SIG Koordinator: Lone Aalekjær, Dato for næste møde er endnu ikke fastlagt. Data warehouse SIG Koordinator: Erik Haar, Dato for næste møde er endnu ikke fastlagt. Web SIG Gruppen er lukket ned indtil en ny koordinator er fundet. Husk at tilmelde dig til møderne hos (ellers får vi for få kager/vand!!) 10 Juni 2001 OracleEkspert

11 TOP-N QUERY Af Martin Jensen - Oracle Consulting. Martin har siden 1982 arbejdet med bl.a. Oracles databasekerne, samt med anvendelse af Designer s Repository til diverse kvalitetsbevarende øvelser. Allerførst må vi lige skalere EMP tabellen lidt op, hvortil vi skal bruge en tabel med ethundrede tusinde rækker: Antag at all_tab_columns har mere end 50,000 rækker: create table hundred_thousend as select rownum r from all_tab_columns where rownum <= union all select rownum r from all_tab_columns where rownum <= 50000; Opret nu tabellen BIGEMP med 1,400,000 rækker: create table bigemp storage ( initial 1M next 1M pctincrease 0 ) as select empno, ename, sal * r salary from scott.emp, hundred_thousend; Så mangler vi bare at generere statistik om tabellen: analyze table bigemp compute statistics; Vores første bud på at finde rækkerne med de 10 højeste lønninger kunne se således ud: select ename, salary from bigemp where rownum <= 10 order by salary desc; ENAME SALARY SMITH 8000 SMITH 7200 SMITH 6400 SMITH 5600 SMITH 4800 SMITH 4000 SMITH 3200 SMITH 2400 SMITH 1600 SMITH 800 Ups - det gav jo ikke det ønskede resultat fordi order by afvikles efter de 10 rækker fremfindes! Men hvad så med at bede databasen om at sortere før de 10 rækker trækkes ud? Vi ved jo at en union, distinct eller group by foretager en intern sortering! select -1* s, ename from ( select -1*salary s, ename from bigemp union select 1, 'hello' from dual where 1 = 2) where rownum <= 10; -1*S ENAME KING KING KING KING KING KING KING KING KING KING 10 rows selected. Elapsed: 00:00:20.40 Se Execution Plan på figur 1. Og med anvendelse af distinct kunne det se således ud: select -1*s, ename from ( select distinct -1*salary s, ename from bigemp) where rownum <= 10; -1*S ENAME KING KING KING KING KING KING KING KING PL/SQL Teknisk Artikel Execution Plan SELECT STATEMENT Optimizer=ALL_ROWS (Cost=19201 Card= Bytes= ) 1 0 COUNT (STOPKEY) 2 1 VIEW (Cost=19201 Card= Bytes= ) 3 2 SORT (UNIQUE STOPKEY) (Cost=19201 Card= Bytes= ) 4 3 UNION-ALL 5 4 TABLE ACCESS (FULL) OF 'BIGEMP' (Cost=598 Card= Bytes= ) 6 4 FILTER 7 6 TABLE ACCESS (FULL) OF 'DUAL' (Cost=1 Card=82) Statistics recursive calls 39 db block gets 3952 consistent gets 3951 physical reads 0 redo size 795 bytes sent via SQL*Net to client 424 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 1 sorts (disk) 10 rows processed Figur 1. Execution Plan OracleEkspert Juni

12 KING KING 0 rows selected. Elapsed: 00:00:18.87 Se Execution Plan på figur 2. Men hov! Her står jo at læse at vi anvender en reel sortering (1 sort (disk)), selvom vi i 8iNF kursusmaterialet fortalte, at det faktisk er muligt at finde de n største uden at foretage en egentlig sortering; og ifølge development fortsætter vi med dette i første release af Oracle9i Execution Plan SELECT STATEMENT Optimizer=ALL_ROWS (Cost=19198 Card= Bytes= ) 1 0 COUNT (STOPKEY) 2 1 VIEW (Cost=19198 Card= Bytes= ) 3 2 SORT (UNIQUE STOPKEY) (Cost=19198 Card= Bytes= ) 4 3 TABLE ACCESS (FULL) OF 'BIGEMP' (Cost=598 Card= Bytes= ) Statistics recursive calls 39 db block gets 3952 consistent gets 3951 physical reads 0 redo size 795 bytes sent via SQL*Net to client 424 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 1 sorts (disk) 10 rows processed Figur 2. Execution Plan Men fra Oracle8i kan samme resultat formuleres lidt enklere: select ename, salary from ( select ename, salary from bigemp order by salary desc) where rownum <= 10; ENAME SALARY KING KING KING KING KING KING KING KING KING KING rows selected. Elapsed: 00:00:16.93 Se Execution Plan på figur 3. Bemærk i øvrigt at det fra Oracle8i faktisk er muligt at have views med order by: create or replace view bigemp_v as select ename, salary from bigemp order by salary desc; select ename, salary from bigemp_v where rownum <= 10; I øvrigt fås samme resultat ved at anvende de nye analytiske SQL muligheder men det er ikke hurtigere, check selv: select ename, salary from ( select ename, salary, rank() over (order by salary desc) as salary_rank from bigemp ) where salary_rank <= 10; select ename, salary from ( select ename, salary, row_number( ) over (order by salary desc) as salary_row_number from bigemp) where salary_row_number <= 10; Execution Plan SELECT STATEMENT Optimizer=ALL_ROWS (Cost=19198 Card= Bytes= ) 1 0 COUNT (STOPKEY) 2 1 VIEW (Cost=19198 Card= Bytes= ) 3 2 SORT (ORDER BY STOPKEY) (Cost=19198 Card= Bytes= ) 4 3 TABLE ACCESS (FULL) OF 'BIGEMP' (Cost=598 Card= Bytes= ) Statistics recursive calls 39 db block gets 3952 consistent gets 3951 physical reads 0 redo size 797 bytes sent via SQL*Net to client 424 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 1 sorts (disk) 10 rows processed Figur 3. Execution Plan 12 Juni 2001 OracleEkspert

13 Fax eller send kuponen til: Pythia Information Kongensvej Frederiksberg Fax: ABONNEMENT Ja tak, jeg ønsker: Eller bestil via vores hjemmeside: Eller nedenstående oplysninger til: stk stk stk stk stk stk stk stk OracleEkspert nr 1 - DKK 125,00 pr stk...dkk OracleEkspert nr 2 - DKK 125,00 pr stk...dkk OracleEkspert nr 3 - DKK 125,00 pr stk...dkk OracleEkspert nr 4 - DKK 125,00 pr stk...dkk OracleEkspert nr 5 - DKK 125,00 pr stk...dkk OracleEkspert nr 6 - DKK 125,00 pr stk...dkk OracleEkspert nr 7 - DKK 125,00 pr stk...dkk 1 års abonnement (6 numre) - DKK 600,00 pr stk...dkk Jeg vil gerne begynde abonnementet med OracleEkspert nr: - 40% ved samtidig køb af minimum 5 blade eller abonnementer...dkk - 45% ved samtidig køb af minimum 10 blade eller abonnementer...dkk - 50% ved samtidig køb af minimum 20 blade eller abonnementer...dkk - 60% ved samtidig køb af minimum 50 blade eller abonnementer...dkk Bemærk: Når abonnementerne købes med mængderabat bliver alle blade sendt i én samlet forsendelse. Det er altså ikke muligt at få bladene sendt til individuelle modtagere. Pris i alt...dkk Firma: Navn: Adresse: Postnr/By: Land: Priserne er excl moms. Ved hver tegning af minimum 1 års abonnement på OracleEkspert sender vi et stk signeret kvalitetskopi af Oraclerne til den læser, som har refereret den nye abonnent til os. Kopien er trykt på kraftigt papir og signeret med rød tush. En OracleEkspert-læser er en person med eget abonnement eller en person ansat i et firma, som har tegnet abonnement på OracleEkspert. Refereret af: Adresse: Man kan ikke referere et abonnement til sig selv. Postnr/By: Som referencegave ønskes en signeret kopi af Oraclerne fra OracleEkspert: Nr 1 Det er fordi de ikke kan li fremmednøgler... [ ] Nr 2 Det er jo også vores Designer mand... [ ] Nr 3 Har du prøvet at skifte din Where-clause ud med en Santa clause?... [ ] Nr 4 Pro*C... [ ] Nr 5 No more table space...[ ] Nr 6 Komme i Forms...[ ] OracleEkspert Juni

14 Fortsat fra side 3 enten/eller, for hvis man vil have virkelig ekspertviden ind, så er det yderst sjældent man som virksomhed har tid og råd til at kultivere specialer. Det er nok her, jeg finder at dit indlæg mest lugter af sure tæer, for der er i de fleste tilfælde ikke noget alternativ til at bruge konsulenter. Ikke kun fordi de "dygtige" er selvstændige i dag, men også fordi det er uøkonomisk for en virksomhed at opretholde et beredskab af viden, som kun skal bruges sporadisk. Hvor meget kan du forlange mht. pris-effektivitet, fleksibilitet og hurtige kurs-ændringer af fastansat personale? Ikke meget, ihvertfald ikke i de virksomheder, hvor der "går fagforening i den" med hæve/sænke-borde, frisk frugt, Ginseng, børnepasning og vitaminpiller (dette er virkelig eksempler fra danske virksomheder). Men konsulenter kan jo altid holdes op mod hinanden, og har motivationen til at være på forkant hurtigt (hvilket iøvrigt er noget af det, der gør det sjovt for dem. En person, der laver noget han/hun er god til, står jo dybest set stille og mister markedsværdi). Marc de Oliveira: Jeg vil medgive dig, at jeg burde have håndteret din pointe om deling af meget specialiseret viden lidt bedre. Den var ikke central for min leder, men det fik jeg ikke rigtigt gjort opmærksom på. Jeg ser konsulentmarkedet som 10% meget dygtige specialister, og 90% jævne konsulenter, som lige så godt kunne være fastansat. Min erfaring, da jeg havde seks konsulenter gående, var at jeg selv var mindst 2-3 gange hurtigere om at løse en hvilken som helst af vores opgaver end nogen af konsulenterne. Kun XXX, som vi har haft gående i det meste af tre år, kan gå ind og løse opgaver lige så effektivt, som jeg selv. Så det er ikke kun merprisen, der er en faktor. Det er prisen holdt op mod den meget lave effektivitet man kan forvente af en konsulent, i den første meget lange tid (her tænker jeg så ikke på de 10%, som er meget dygtige til lige præcis den opgave, de bliver hyret til at løse, men på de 90% all-round'ere, som har 5-10 års erfaring med alt muligt inde for Oracle-verden). Jeg er helt enig i, at vi er ved at bevæge os over i en struktur, hvor vi alle bliver mere selvstændige, og det er netop denne bevægelse min leder stiller spørgsmålstegn ved. Er det virkelig i nogens interesse at vi alle bliver så uafhængige? Jeg er ikke enig i, at det nødvendigvis er de dygtigste, som bliver selvstændige. I univeristetsverden har man også kunnet fastholde mange af de dygtigste folk ved give dem frie rammer til at forske og adgang til meget store ressourcer at arbejde med - på trods af den begrænsede løn. Denne rubrik er åben for alle spørgsmål, forslag og tilkendegivelser om Oracle eller OracleEkspert, hvad enten de er tekniske eller mere strategiske. Indlæg kan godt være anonyme, men redaktionen skal vide, hvem der har skrevet dem. Oracle Danmark Support og Metalink tilbyder, at besvare de tekniske spørgsmål. SKRIV EN ARTIKEL Vi betaler dig 700 kr pr side for artikler, som trykkes i OracleEkspert (400 kr pr side for engelsksprogede artikler). Du kan også komme til at vinde OracleEkspertprisen, som i december-nummeret uddeles til forfatteren af årets bedste artikel. Deadline for artikler til OracleEkspert nr 7 (august 2001) er fredag den 11. juli Har du lavet noget genialt, som kunne have interesse for andre Oracle-udviklere, ledere, planlæggere mv, så skriv en artikel til OracleEkspert. Sådan gør du: Aflever et oplæg på ca 200 ord via vores hjemmeside: Når oplæget er godkendt af redaktionen, kan du skrive selve artiklen. Du kan hente en template på vores hjemmeside. Artiklen skal også godkendes af redaktionen. Dette sker ud fra kriterier om seriøsitet, relevans og teknisk niveau. Artiklerne skal henvende sig til erfarne Oraclefolk. Emnet skal blot være relateret til Oracle. Den normale størrelse af en artikel er 3-6 sider. Hvis din artikel falder udenfor denne størrelse, bør du gøre os opmærksom på det, inden du begynder at skrive den. Tips: Tips, som trykkes i OracleEkspert, belønnes med en flaske Leoville Barton 1997 Grand Cru til en værdi af ca DKK 400. Indryk en jobannonce i OracleEkspert DKK (excl moms) for 1/4 side 14 Juni 2001 OracleEkspert

15 SIMULATING OPS$ USERS THROUGH A BROWSER Marc de Oliveira is Team Leader at Novo Nordisk Engineering. He has worked with Oracle products (mainly CASE/Designer) since He is coordinator of the Danish Designer SIG and the Scandinavian reseller of DesignAssist. What s your problem? Why would you want to simulate OPS$ users through a browser? To those not familiar with OPS$ users I should quickly fill you in. OPS$ users are also known as Operating System authenticated users. This is a very old Oracle feature that lets you bypass the Oracle login for users that have already been authenticated by a secure operating system like Unix or MS-network. In case we are sure that user X has been logged securely into the operating system there really is not much point in demanding an Oracle username and password, because we already know who the user is. So the OPS$ feature allows the end user to connect to an Oracle database without having to remember an Oracle username and password. Sounds great, right? If all your users are authenticated when logging into the same MS-domain they should be able to pass that login information to the Oracle database automatically, so that they can run intranet applications without being prompted for an Oracle username and password. Well, unfortunately Oracle does not support that, but if you would like to do it anyway then read on. The solution presented here is only relatively secure. It is secure enough to only allow users that are authenticated to the OS to login to the Oracle database. But smart Oracle users will be able to find a way to log into the database as another OS user than the one they logged into the OS as. You can do a number of things to diminish this loophole, but it will always be there. I ll get back to the security issues at the end of the paper. The solution shown here will work on any Oracle WebServer (WAS, OAS or ias). In the following I will be using the term WebServer referring to any of the Oracle WebServers. Why simulate? Why not use real OPS$ users? Operating System authentication has been a standard feature in Oracle for the past ten years but unfortunately it never made it into the Internet Age. The Internet Changes Everything, well, for people using OPS$ users it really did, because they had to give up this feature to be able to let their users connect individually to the database through a browser (for WebForms, WebDB or Designer WSG modules). OPS$ users still work in Client/Server mode for Forms, Reports, SQL*Plus etc but if the same users have to access Oracle through a browser as well, you must redefine them as regular Oracle users with an individual username and password, because OPS$ users and regular Oracle users cannot co-exist. You cannot create an Oracle user that can connect both as an OPS$ user (without the username and password) and as a regular Oracle user (with the username and password). So, we need to define an architecture that will allow for Operating System authentication on both Client/Server and Web applications without using the build-in OPS$ feature. We have to simulate OPS$ users. The Oracle username and password The first thing to do is to define a way to map OS usernames with Oracle usernames and passwords. On our site we have decided to map the OS username with the Oracle username directly but you are not restricted to that. You could decide to add OPS$ to the OS username, so that OS user USER1 logs into the database as OPS$USER1, or you could completely encrypt the OS username into an unrecognizable Oracle username, so that OS user USER1 becomes Oracle user XYZ The simplest possible function for mapping an OS username to an Oracle username follows here: FUNCTION MAKE_USERNAME (p_os_username in varchar2) return varchar2 IS v_db_username varchar2(30); BEGIN v_db_username:= p_os_username; RETURN (SUBSTR(v_db_username,1,30)); END; In parallel, it is necessary to define a way to map the DB username with the Oracle database password. The following function does that in a very simple way. I will leave it up to you to improve the function to make a more advanced mapping. FUNCTION MAKE_PASSWORD (p_db_username in varchar2) return varchar2 IS v_password number:= 1; BEGIN FOR i IN 1..length(p_db_username) LOOP v_password:= v_password * ASCII(SUBSTR(lower(p_db_username),i,1)); END LOOP; RETURN( PW SUBSTR(TO_CHAR(v_password),1,28)); END; Creating database users The next step is to create (or update) your database users using the above functions so that they all have a derivable password not known to themselves. A create script would look something like this: SET FEEDBACK OFF SET LINESIZE 200 SET PAGESIZE 0 SET HEADING OFF SPOOL create_user.ex SELECT 'CREATE USER ' MAKE_USERNAME('&1') Web Teknisk Artikel OracleEkspert Juni

16 ' IDENTIFIED BY ' MAKE_PASSWORD(MAKE_USERNAME('&1')) ' DEFAULT TABLESPACE DEFAULT_TS ' ' TEMPORARY TABLESPACE TEMP_TS;' FROM DUAL; SPOOL OFF START create_user.ex HOST del create_user.ex while a script for updating all your existing users would look something like this: SET FEEDBACK OFF SET LINESIZE 200 SET PAGESIZE 0 SET HEADING OFF SPOOL update_users.ex SELECT 'ALTER USER ' USERNAME ' IDENTIFIED BY ' MAKE_PASSWORD(USERNAME) ' DEFAULT TABLESPACE DEFAULT_TS ' ' TEMPORARY TABLESPACE TEMP_TS;' FROM SYS.DBA_USERS WHERE USERNAME IS NOT NULL AND USERNAME NOT IN ('SYS', 'SYSTEM'); SPOOL OFF START update_users.ex HOST del update_users.ex Now that all your users do not know their own passwords you really need to go the next step, so that they can automatically be logged on! Automatic login through the Web The logging into the database through the web browser is divided into three steps. First, we need to extract the login information, then we need to perform the login without making the WebServer invoke the login dialog. The third step is a necessary extra redirection. These steps are explained in the following. Extract the OS Username The Oracle WebServer does not have direct access to the OS username of the users requesting access to the database, so we need to extract the OS username in the MS environment. This can be done easily by using a Microsoft product like Active Server Pages (ASP). The ASP page needs to be called with the name of the Oracle procedure to be executed as an argument, so that the user can be redirected to the desired PL/SQL module after login. The URL to the ASP will look something like this (let us say that the ASP file is called START.ASP): to ASP directory>/ start.asp?module=mymodule$.startup To extract the argument MODULE and the current users OS username, the ASP file must look like this: <% p_module = Request("MODULE") v_os_username = LCase(Request.ServerVariables("Remote_User")) %> We then need to make ASP functions corresponding to the above MAKE_USERNAME and MAKE_PASS- WORD to map the extracted OS username to the corresponding database username and password. The main difference between ASP and PL/SQL is that you do not need to define your variables. MAKE_USERNAME would look like this: <% v_db_username = v_os_username %> MAKE_PASSWORD would look like this: <% i = InStr(v_os_username,"\") v_db_username = Mid(v_db_username,i+1,Len(v_db_username)-i) v_password = 1 for j = 1 to Len(v_db_username) v_password = v_password*asc(mid(v_db_username, j, 1)) next v_password = "PW" & v_password %> At this point, the ASP page have values for p_module, v_os_username, v_db_username and v_password. Note: If the module which you wish to call (p_module), has arguments you will have to hide the &-characters so that they are not interpreted as arguments for the ASP page. You could replace the &-characters with *- characters, like this: to ASP directory>/ start.asp?module=mymodule$.startup? myarg1=a*myarg2=b Log onto Oracle through the ias The actual logging into the Oracle database can be done from the above described ASP page using a little JavaScript to redirect the browser to an Oracle module. The login information can be placed in the URL like this: so the necessary JavaScript code will look as shown in figure 1. The <URL to plsql-cartridge> looks different depen- <% response.write "One moment, please..." Response.Write "<SCRIPT LANGUAGE=""JavaScript"">" + CHR(13) Response.Write "<!--" + CHR(13) Response.Write "{"+ CHR(13) Response.Write "self.location.href = ""http://" & v_db_username & ":" & v_password & to plsql-cartridge>/redirect?p_arg1=" & p_module & """"+ CHR(13) Response.Write "}"+ CHR(13) Response.Write "// -->"+ CHR(13) Response.Write "</SCRIPT>"+ CHR(13) %> Figure 1. Log onto Oracle through ias 16 Juni 2001 OracleEkspert

17 ding on which WebServer you are using. The second redirection Note that the above JavaScript is redirecting the browser to a plsql-module called REDIRECT with p_module as an argument. This second redirection is necessary to remove the username and password from the URL. If we did not do this, the username and password would permanently be visible in the URL, which would allow another user to note and reuse that username and password from his/her own computer to login as the other user. Another problem with keeping the username and password in the URL is that List Of Values generated from Designer will not work because the URL somehow is not recognized. As the REDIRCT procedure is called, the user is logged into the database, so we can now make the second redirection to the desired module without specifying the username and password. The REDIRECT procedure should look something like this: htp.print( '<html> ' '<head> ' '<META HTTP-EQUIV="REFRESH" CONTENT="0;' ' URL=' REPLACE(p_arg1,'*','&') ' ">' '</head>' '</html>'); The REPLACE is for converting the argument separation *-characters back to the necessary &-characters (se section Extract the OS Username). Done! With the above described ASP page and REDIRECT procedure installed on you system, MS-domain users will be able to access the Oracle procedure MYMOD- ULE(MYARG1, MYARG2) through their own schema, without being prompted for a username and a password. Just let them click on a link like this from a simple HTML page: to ASP directory>/ start.asp?module=mymodule$.startup? myarg1=a*myarg2=b Automatic login through Client/Server As Oracle schemes cannot be both OPS$ users and regular users at the same time we cannot use the supported OPS$ feature for our Client/- Server modules after having implemented the a- bove architecture for connecting to the database through a browser. Instead we need an architecture corresponding to the one for Web access where a startup form is called with a minimal connect string that can then calculate the database username and password to be used, make that connection and then call the desired form. declare v_os_username varchar2(30); v_db_username varchar2(30); The Minimal Scheme First you need a minimal scheme on the database that can connect to the database and nothing else. You might create the scheme like this: CREATE USER STARTUP IDENTIFIED BY NOT_SECRET; GRANT CONNECT TO STARTUP; This scheme is used to launch the startup form with the name of the desired form as a parameter, like this: Ifrun60.exe module=startup userid=startup/not_secret p_module=myform The Logon Scheme Next you need another minimal scheme on the database that can connect to the database and has access to the MAKE_USERNAME and MAKE_PASSWORD functions. You might create the scheme like this: CREATE USER LOGON IDENTIFIED BY SECRET; GRANT CONNECT TO LOGON; GRANT EXECUTE ON MAKE_USERNAME TO LOGON; GRANT EXECUTE ON MAKE_PASSWORD TO LOGON; This scheme is used from within the startup form to connect to the correct database user and launch the desired form. I need both the STARTUP scheme and the LOGON scheme to prevent end users from seeing the password of the LOGON scheme. More on this in the Security section. The Startup Form The startup form is a simple form with one small navigable item, a parameter called p_module and a whennew-form-instance trigger for launching the desired form. The trigger will look like figure 2. To get the OS username of the current user, I use the Win_API_Environment package contained in the D2KWUTIL.PLL library. The newest version of the D2KWUTIL.PLL library can v_password varchar2(100); v_connect varchar2(30); begin v_os_username:= lower(win_api_environment.get_windows_username); v_connect:= get_application_property(connect_string); logout; logon('logon', string>'); v_db_username:= make_username(v_os_username); v_password:= make_password(v_db_username); logout; logon(v_db_username, v_password v_connect); new_form(:parameter.p_module); end; Figure 2. When-new-form-instance trigger be downloaded from: ftp://oracle-ftp.oracle.com/dev_tools/ OracleEkspert Juni

18 patchsets/dev2k/win95nt/d2kwutil/ That s it The resulting functionality is that the end user starts up the startup form that barely shows up before the desired form is opened instead. The startup form is not running in the background. Security issues In this section I will discuss some of the security issues raised by this OPS$ simulation. The ASP files The code for generating the database usernames and passwords is placed in the start.asp file which is just a simple text file. You should make sure that end users do not have read access to that file, while the ASP web server (Microsoft InformationServer) must be setup to be able to execute ASP files in the directory containing the start.asp file. This can be achieved by placing the ASP file in a directory only accessible to one specific user (it could be the Administrator), and map that directory to a virtual directory defined to access the physical directory as that user. Make sure that the virtual directory is defined with the Source option disabled, so that end users cannot request to see the source code of the ASP file. Another solution would be to wrap the code for making the username and password in an ActiveX component on the InformationServer and place the component somewhere not accessible to external users. Then the ASP file would just call the ActiveX component without revealing how the username and password is constructed. Getting around the MS-domain When logging into a PC, end users have the option to bypass the login dialog by pressing the Cancel button. When doing this, they will still have web access and, hence, be able to invoke the start.asp file. If end users bypass the login dialog they will not get an OS username and therefore the start.asp program will not be able to log them into the database. Even if the end user creates a local user and logs in locally as that user, that OS username will not be retrieved by the Request.ServerVariables("Remote_User") command. The MAKE_USERNAME and MASK_PASSWORD functions These functions can be used to generate the database username and password of any OS user so you should be very careful with whom you grant them to. The only scheme that needs access to these functions is the LOGON scheme, so be very careful about who gets to know about the password to the LOGN scheme. The password to the LOGON scheme is written in the STARTUP form, so it is important that end users do not have access to the STARTUP.FMB file. The password to the STARTUP scheme is kind of public but that does not affect security as the START- UP scheme does not have access to anything. The URL As the database username and password is passed to the REDIRECT procedure through the URL, it will be visible to the end user for a short time while the page is performing the second redirection (see the section about the second redirection). This means that an end user is exposed to his/her own database username and password for a short time (less than a second) every time a start.asp link is invoked. This is not a serious security problem because all users are able to connect as themselves, anyway. It still makes it possible for one end user to see another end user s database username and password if he/she can get access to the other end user s PC. To prevent this problem, end users must know that they should not leave their PCs without locking them first (or log of the domain entirely). Another solution is to expire the passwords often (see the next section). Password expiration Because all passwords are systematically generated using the function MAKE_PASSWORD it is easy to have them changed often to improve the security. By doing this, an end user that somehow got hold of another end user s database username and password (as explained in the previous section) would only be able to use that login information for a limited period. If you make the MAKE_PASSWORD function dependent of the current date and have a recurring job updating all passwords accordingly every night just after midnight, any password would only be valid for 24 hours. If you want to expire the passwords more often than this (every hour, maybe) you should make sure that the web server is set to Keep Database Connection Open between Requests, so that users are not forced reconnect all the time. Conclusion So there you have it. If you trust your MS-network, with a little PL/SQL, JavaScript, ASP, HTTP and HTML it is possible to let your users individually log directly into the database without prompting them for at username and a password. It is not a completely secure architecture but for most organizations I would say that it is secure enough because, 1) end users cannot get access to the database without logging into the MS-network first, and 2) after logging into the MS-network they have to be pretty smart to get access to another account than the one they logged onto the MS-network with. 18 Juni 2001 OracleEkspert

19 16. maj 2001 Oracle databasen er #1 til CRM 57% af all CRM-systemer er ifølge TDWI (The Data Warehouse Institute) baseret på Oracle databaser. Microsoft er #2 med 26% og IBM er #3 med 17%. Se også: tellmemore/? maj 2001 FastForward Mobile and Corporate Directory Oracle annoncerede i dag et nyt produkt, som gør det muligt for medarbejdere at få adgang til og egne og kollegaers kalenderoplysninger fra mobiltelefoner og andre ledningsfri enheder som PDA er. Systemet kan installeres på 15 dage. En række firmaer har allerede bestil produktet. Deriblandt Cap Gemini og Hewlett-Packard. 15. maj 2001 NATO implementerer E-Business Suite Oracle og NATO annoncerede i dag at Nato implementerer E-Business Suite i 19 hovedkvarterer fordelt i 12 forskellige lande. Produktet kaldes NATO Automated Financial System og installeres af Oracle Consulting og Support Service. Se også: tellmemore/? maj 2001 Microsoft går efter Oracle og Sun Chief Executive Steve Ballmer sagde i dag, at Microsoft vil gå efter servermarkedet. I dag udgør Microsofts salg af serversoftware 12% af Microsofts indtægter (ca USD 3 mia), men Ballmer forudså, at det på sigt kunne nå helt op på 20%. 24. april 2001 Ellison peger på efterfølger Larry Ellison regner med at blive siddende som administrerende direktør for Oracle i mindst 5-10 år endnu, men forespurgt om hvem der var nummer 2 efter at Ray Lane forlod Oracle, peger han på to personer: Executive Vice President Safra Catz og Chief Financial Officer Jeff Henley. Ellison siger at han desuden er ved at køre et antal yngre personer i stilling til at kunne overtage firmaet. 23. april 2001.NOW overhaler.net Oracle kritiserer i dag, at Microsoft endnu ikke har leveret.net det lovede udviklingsmiljø til mobil udvikling. Oracle tilbyder allerede Shared Web services.now og udviklingsmiljøet OracleMobile Online Studio, som er til 100% netbaseret udvikling med udvikling, afprøvning og implementering via nettet. Med få liniers programmering kan shared services integreres. I dag tilbydes bla Location awareness, Driving Directions og Yellow Pages. 12. april 2001 Oracle #1 i sikkerheds-certificering Oracle offentliggjorde i dag at deres database har fået 13 sikkerhedscertificeringer. Disse inkluderer ICSEC, ITEC og Common Criteria. Til sammenligning har Microsoft een certificering, mens IBM har nul. cashing foretaget af eweek kan antallet af genererede dynamiske websider per sekund øges med 30 gange ved at bruge ias9i. 31. marts 2001 Ellison får forbud mod at lande jetjager Larry Ellison har fået afslag på et krav om at få lov til at lande sin Gulfsteam V jetjager i San Joses internationale lufthavn mellem kl. 23:30 og 06:30. Afslaget betyder at Ellison må tilbage i retten den 9. april for at fortsætte sagen mod San Jose. Ellison er ved at bygge 9.4 hektar villa i japansk stil ved Woodside til USD 80 mill. Det hævdes at Ellison har brudt landingsforbudet seks gange på et år. Det er forbudt at lande fly på over 34 tons om natten, men selv om Ellisons jet kan lastes til 41 tons hævder hans pilot at det aldrig vejer mere end 34 tons, når de lander i San Jose. Desuden støjer Gulfstream V jetjageren mindre end mange fly, som vejer mindre end 34 tons. 26. marts 2001 Oracle vil bygge digitalt hospital Hospital and rehabilitationchain HealthSouth Corp. og Oracle vil bygge et digitalt hospital, som skal forbedre patienternes behandling og eliminere papirarbejdet. Målet er at have udviklet USAs teknologisk mest avancerede hospital inden udgangen af Nyheder 30. april 2001 Langsomt salg de næste 2-3 kvartaler George Roberts, Oracle's executive vice president of North American sales, sagde i dag, at salget, grundet den generelle udmatning i den amerikanske økonomi, kunne forventes at gå langsomt de næste 2-3 kvartaler. Rygter siger, at Oracle snart bliver nødt til at nedskrive forventningerne til 4. kvartal, som ender i maj. 9. april 2001 Oracle annoncerer idevelop2001 Online idevelop2001 Online er en 100% web-baseret 24x7 løsning til uddannelse og træning via OTN. OTN rundede samtidig 1.5 millioner medlemmer. 4. april 2001 SAP og Yahoo går sammen om at udvikle portal software SAP og Yahoo vil bygge software til at lave business-portaler. 4. april 2001 eweek bekræfter at ias9i giver øget performance Ifølge en undersøgelse af ias9is indbyggede statiske og dynamiske 21. marts generation af New Internet Computer I dag blev 2. generation af NIC en offentlig gjort. Den koster USD 199 og er baseret på NIC OS version 2.0. Ellison hævder stadig, at NIC en er det næste evolutionære skridt efter PC en. 20. marts 2001 Oracle vil fyre 2% af medarbejderne For at imødegå den langsomme økonomi vil Oracle nedlægge 866 stillinger. OracleEkspert Juni

20 PL/SQL Metode Teknisk Artikel CUTTING CODE WITH STYLE PART II Scott Hollows is Product Manager for Seeristic. He is an expert in a wide range of Oracle technologies and was previously Senior Principal at Oracle s world corporate headquarters in Redwood Shores, California. Introduction This article is part II of a two part series that explains a recommended coding style that is easy to write, read and maintain. In the last issue, we examined commenting and layout issues for SQL and PL/SQL. This issue will focus on various structures of SQL and PL/SQL including SELECT, INSERT, IF and LOOPS. SELECT Statements The layout of this SELECT statement is easy to read /* Data Model (*1) EMP >- 1 DEP >- 2 LOC */ and maintain. Of course, it does take a little extra effort to write, but the effort is well worth the benefits. It includes the following features: (*1) A Data Access Map represents how the query is joining the tables in the query. Data Access Maps are covered in more detail in the following section of this article. For further clarification, the joins numbers that in the Data Access Map ( 1 and 2 ) are also indicated in the Join section of the query as noted in (*5) below. This doubling up of effort significantly improves the readability of your code, but you must take extra care to keep the two in synch. (*2.a) Code Source Indicator : The first part of the comments EMP_PKG.- validate_emp indicates where the query can be found within the many application files and program units that make up your application. In this particular case, the Code Source Indicator shows that the query is part of a a procedure within a database package. Since these comments are part of the query itself, the comments will appear within database trace files. So if someone is examing the query in the trace file, they will immediately know where to find the query in the application. Trust me on this one scanning through hundreds of files to find the source code is not a pleasant experience and this simple technique removes this unpleasant task. Please read *2.a and 2.b further notes below (*2.b) Tuning Comments The tuning comments Tuned 20-MAY-2001 SHOLLOWS indicate that this query has been tuned, and by whom and when. I am constantly seeing applications where people have put a lot of effort into tuning (usually as a late phase in development) and do not bother to indicate that this effort has been done. If you don t add tuning comments, no one will know whether the query has been tuned or not and they may SELECT /* EMP_PKG.validate_emp : Tuned 20-MAY-2001 SHOLLOWS */ (*2a & b) EMP.id employee_id (*3),EMP.salary from emp EMP (*4),dep DEP,location LOC where /* Joins */ (*5.a) EMP.dept_id = DEP.dept_id -- 1 (*6) And DEP.location_id = LOC.location_id -- 2 /* Restrictions */ (*5.b) And EMP.status = ACTIVE And EMP.end_date <= sysdate (*7.a) (*7.b) Figure 1. Select statement have to end up duplicating your tuning effort now knowing that this has already been done. Another nice feature of this Tuning Comment is that it will appear in database trace files since the comment is part of the query itself. Please read *2.a and 2.b further notes below (*2.a and 2.b further notes) Optimizer Hints If you add a database optimizer hint such as /*+ INDEX (EMP EMP_STATUS_I) */ the optimizer hint must appear in a separate comment that is placed before the Tuning Comments and Code Source Indicator Comments otherwise the database will ignore the optimizer hint! SELECT /*+ INDEX (EMP EMP_STATUS_I) */ /* EMP.FMB validate_emp etc... */ Auto-Removal of Comments Unfortunately, some client programs (including Oracle Forms) strip out all SQL comments except for optimizer hints before sending the SQL to the database. Oracle Forms does this because it believes that the decrease in network traffic and effort in parsing the query is worth the extra effort that it takes to remove the comments. So, the effort that you put into commenting may not make it to the database! As a result you cannot rely on a lack of tuning comments within the trace file to indicate that the SQL has not been tuned. Even so, it is well worth the effort 20 Juni 2001 OracleEkspert

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

Læs mere

Userguide. NN Markedsdata. for. Microsoft Dynamics CRM 2011. v. 1.0

Userguide. NN Markedsdata. for. Microsoft Dynamics CRM 2011. v. 1.0 Userguide NN Markedsdata for Microsoft Dynamics CRM 2011 v. 1.0 NN Markedsdata www. Introduction Navne & Numre Web Services for Microsoft Dynamics CRM hereafter termed NN-DynCRM enable integration to Microsoft

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingen åbner om to uger Mandag den 3. december kl. 8.00 åbner tilmeldingen til Trolling Master Bornholm 2013. Vi har flere tilmeldinger

Læs mere

Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16

Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16 Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16 Modtager man økonomisk støtte til et danseprojekt, har en premieredato og er professionel bruger af Dansehallerne har man mulighed for

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

QUICK START Updated: 18. Febr. 2014

QUICK START Updated: 18. Febr. 2014 QUICK START Updated: 18. Febr. 2014 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

Backup Applikation. Microsoft Dynamics C5 Version 2008. Sikkerhedskopiering

Backup Applikation. Microsoft Dynamics C5 Version 2008. Sikkerhedskopiering Backup Applikation Microsoft Dynamics C5 Version 2008 Sikkerhedskopiering Indhold Sikkerhedskopiering... 3 Hvad bliver sikkerhedskopieret... 3 Microsoft Dynamics C5 Native database... 3 Microsoft SQL Server

Læs mere

Velkommen. Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist

Velkommen. Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist Velkommen Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist 1 Agenda Fra backup til restore produkt Politikstyret Backup Live Demo 2 IBM XIV Snapshots - Næsten uden begrænsninger Snapshot

Læs mere

Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016

Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016 Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016 Vi er nødsaget til at få adgang til din lejlighed!! Hvis Kridahl (VVS firma) har bedt om adgang til din/jeres lejlighed og nøgler,

Læs mere

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard)

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) På den allerførste skoledag fik de farver og papir. Den lille dreng farved arket fuldt. Han ku bare ik la vær. Og lærerinden sagde: Hvad er

Læs mere

Overfør fritvalgskonto til pension

Overfør fritvalgskonto til pension Microsoft Development Center Copenhagen, January 2009 Løn Microsoft Dynamics C52008 SP1 Overfør fritvalgskonto til pension Contents Ønsker man at overføre fritvalgskonto til Pension... 3 Brug af lønart

Læs mere

For nogle statuskoder vil der komme en klar tekst besked, mens der for andre vil komme en fire cifret kode, som angivet i afsnit 2

For nogle statuskoder vil der komme en klar tekst besked, mens der for andre vil komme en fire cifret kode, som angivet i afsnit 2 1 Statuskoder i forbindelse med en transaktion I forbindelse med en transaktion, vil Sagem Solo terminalen vise en statuskode/statusbesked i ekspedientterminalens display. Endvidere vil der blive udskrevet

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingerne til 2013 I dag nåede vi op på 77 tilmeldte både. Det er lidt lavere end samme tidspunkt sidste år. Til gengæld er det glædeligt,

Læs mere

Masters Thesis - registration form Kandidatafhandling registreringsformular

Masters Thesis - registration form Kandidatafhandling registreringsformular Masters Thesis - registration form Kandidatafhandling registreringsformular Godkendelse af emne for hovedopgave af vejleder og undervisningskoordinator. Læs venligst retningslinjerne sidst i dette dokument

Læs mere

Nyhedsmail, april 2014 (scroll down for English version)

Nyhedsmail, april 2014 (scroll down for English version) Nyhedsmail, april 2014 (scroll down for English version) Kære Omdeler Forår og påske står for døren, og helligdagene i forbindelse med påsken betyder ændringer i omdelingen. Derudover kan du blandt andet

Læs mere

Vejledning til at tjekke om du har sat manuel IP på din computer.

Vejledning til at tjekke om du har sat manuel IP på din computer. Indhold Vejledning til at, komme på nettet. (DANSK)... 2 Gælder alle systemer.... 2 Vejledning til at tjekke om du har sat manuel IP på din computer.... 2 Windows 7... 2 Windows Vista... 2 Windows XP...

Læs mere

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

www.cfufilmogtv.dk Tema: Pets Fag: Engelsk Målgruppe: 4. klasse Titel: Me and my pet Vejledning Lærer

www.cfufilmogtv.dk Tema: Pets Fag: Engelsk Målgruppe: 4. klasse Titel: Me and my pet Vejledning Lærer Me and my pet My dogs SVTV2, 2011, 5 min. Tekstet på engelsk Me and my pet er en svenskproduceret undervisningsserie til engelsk for børn i 4. klasse, som foregår på engelsk, i engelsktalende lande og

Læs mere

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR ITSO SERVICE OFFICE Weeks for Sale 31/05/2015 m: +34 636 277 307 w: clublasanta-timeshare.com e: roger@clublasanta.com See colour key sheet news: rogercls.blogspot.com Subject to terms and conditions THURSDAY

Læs mere

Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML

Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML Microsoft Development Center Copenhagen, July 2010 OIOXML / OIOUBL Microsoft Dynamics C5 Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML Indledning Indledning... 3 Anvendelse af værktøjet... 3

Læs mere

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF UDLEVERET PDF ==> Download: UDLEVERET PDF UDLEVERET PDF - Are you searching for Udleveret Books? Now, you will be happy that at this time Udleveret PDF is available at our online library. With our complete

Læs mere

Microsoft Development Center Copenhagen, December 2009. Factsheet. Microsoft Dynamics C5 2010. Web Services

Microsoft Development Center Copenhagen, December 2009. Factsheet. Microsoft Dynamics C5 2010. Web Services Microsoft Development Center Copenhagen, December 2009 Factsheet Microsoft Dynamics C5 2010 Web Services Indhold Indledning... 3 Integration til Krak... 4 Krak på debitor og kreditor... 4 Krak på løn...

Læs mere

RentCalC V2.0. 2012 Soft-Solutions

RentCalC V2.0. 2012 Soft-Solutions Udlejnings software Vores udvikling er ikke stoppet!! by Soft-Solutions RentCalC, som er danmarks ubetinget bedste udlejnings software, kan hjælpe dig med på en hurtigt og simple måde, at holde styr på

Læs mere

Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client

Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client Bernhard Fabricius, IT-afdelingen Version 0.1, 2009-05-23 Tilmelding For at få adgang til VPN klienten skal der udfyldes

Læs mere

Sunlite pakke 2004 Standard (EC) (SUN SL512EC)

Sunlite pakke 2004 Standard (EC) (SUN SL512EC) Sunlite pakke 2004 Standard (EC) (SUN SL512EC) - Gruppering af chasere igen bag efter. På den måde kan laves cirkelbevægelser og det kan 2,787.00 DKK Side 1 Sunlite pakke 2006 Standard (EC) LAN (SUN SL512EC

Læs mere

JEG GL DER MIG I DENNE TID PDF

JEG GL DER MIG I DENNE TID PDF JEG GL DER MIG I DENNE TID PDF ==> Download: JEG GL DER MIG I DENNE TID PDF JEG GL DER MIG I DENNE TID PDF - Are you searching for Jeg Gl Der Mig I Denne Tid Books? Now, you will be happy that at this

Læs mere

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås: NOTAT 6. juni 2007 J.nr.: 331-3 LEA Bilag A danzig-møde 15.6.2007 Opdatering af DAN-1 og danzig Profile Specification Forslag til opdatering af Z39.50 specifikationerne efter udgivelse af Praksisregler

Læs mere

The size of the project.

The size of the project. Apartment type B System integrator - COWI Prices from 3-6 million kr. per The size of the project. Suppl. package kr. 400-1,000,000 Why smart-house? The most user-friendly bus- Delivered by DUPLINE The

Læs mere

Kriterie for at bestå: Deltagelse i undervisningstiden, udarbejdelse af e-magasin, deltagelse i fælles fremlægning.

Kriterie for at bestå: Deltagelse i undervisningstiden, udarbejdelse af e-magasin, deltagelse i fælles fremlægning. 1. E-MAGASINER (Herning) Hvem kan deltage: Studerende i Herning Kriterie for at bestå: Deltagelse i undervisningstiden, udarbejdelse af e-magasin, deltagelse i fælles fremlægning. På kurset lærer du at

Læs mere

Virk.dk. A one-stop-shop for businesses. Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency

Virk.dk. A one-stop-shop for businesses. Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency Virk.dk A one-stop-shop for businesses Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency Agenda Background Status Future 16-10-2007 2 Virk.dk 16-10-2007 3 Vision Political

Læs mere

Microsoft Dynamics C5. Nyheder Kreditorbetalinger

Microsoft Dynamics C5. Nyheder Kreditorbetalinger Microsoft Dynamics C5 Nyheder Kreditorbetalinger INDHOLDSFORTEGNELSE Indledning... 3 Uddybning af ændringer... 4 Forbedring vedr. betalings-id er... 4 Ændringer i betalingsmåder (kreditorbetalinger)...

Læs mere

Webshop integration for DanDomain

Webshop integration for DanDomain Microsoft Development Center Copenhagen, December 2009 Factsheet F Microsoft Dynamics C5 2010 Webshop integration for DanDomain Indholdsfortegnelse Indledning... 3 Eksport af varer til webshoppen... 4

Læs mere

Revit Server og Clarity løsninger

Revit Server og Clarity løsninger Revit Server og Clarity løsninger Peter Tranberg AEC Systemkonsulent NTI CADcenter A/S pt@nti.dk Reidar Ristesund Senior systemkonsulent bygg/bim NTI CADcenter A/S rer@ntinestor.no Agenda Autodesk - Revit

Læs mere

WINDCHILL THE NEXT STEPS

WINDCHILL THE NEXT STEPS WINDCHILL THE NEXT STEPS PTC/user, 4. marts 2015 Jens Christian Jensen, Econocap Agenda Windchill the next steps Bliv opdateret og inspireret til at se hvor Windchill kan hjælpe dig med andet end blot

Læs mere

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2011-09-13. Version: 15. Author: SBJ/ANB. Target Level: Customer

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2011-09-13. Version: 15. Author: SBJ/ANB. Target Level: Customer Hosted Exchange Setup guide for e-mail clients & mobile devices Date: 2011-09-13 Version: 15 Author: SBJ/ANB Target Level: Customer Target Audience: End User Language: en-us Page 1 of 35 LEGAL INFORMATION

Læs mere

MENNESKET JESUS KRISTUS PDF

MENNESKET JESUS KRISTUS PDF MENNESKET JESUS KRISTUS PDF ==> Download: MENNESKET JESUS KRISTUS PDF MENNESKET JESUS KRISTUS PDF - Are you searching for Mennesket Jesus Kristus Books? Now, you will be happy that at this time Mennesket

Læs mere

Appendix. Side 1 af 13

Appendix. Side 1 af 13 Appendix Side 1 af 13 Indhold Appendix... 3 A: Interview Guides... 3 1. English Version: Rasmus Ankær Christensen and Hanne Krabbe... 3 2. Dansk Oversættelse - Rasmus Ankær Christensen og Hanne Krabbe...

Læs mere

Hvilke typer koder findes der?

Hvilke typer koder findes der? Introduktion Hvilke typer koder findes der? Responsmekanismer og benchmark ifht. sms. Øg din ROI på din medieinvestering Hvad er det der bygger bro efter din kunde har scannet kode Payment / Salg Promotion

Læs mere

User guide - For testing SFTP and HTTP/S data communication

User guide - For testing SFTP and HTTP/S data communication User guide - For testing SFTP and HTTP/S data communication with Nets Danmark A/S P. 1-9 Index General information... 3 Introduction... 3 Rights... 3 Limitations... 3 Prerequisites... 3 Preparations...

Læs mere

Den gode User Experience. Michelle Andreassen ITAddiction Blogs: QED.dk

Den gode User Experience. Michelle Andreassen ITAddiction Blogs: QED.dk Den gode User Experience Mathilde Hoeg mathildehoeg Michelle Andreassen ITAddiction Blogs: QED.dk Agenda Hvad er brugeroplevelse (UX)? Hvad er en user experience designer? Hvad er brugervenlighed(usability)?

Læs mere

Microsoft Dynamics C5. Nyheder i 2012 Hotfix 001 Version 4.4.00.001

Microsoft Dynamics C5. Nyheder i 2012 Hotfix 001 Version 4.4.00.001 Microsoft Dynamics C5 Nyheder i 2012 Hotfix 001 Version 4.4.00.001 INDHOLDSFORTEGNELSE Anvendelse af aktionslister... 3 Kopiering af aktionslister... 4 Aktionsliste oversigt... 4 XML Udbakke... 5 Microsoft

Læs mere

Implementering af evidensbaseret viden lederskab som bærende faktor

Implementering af evidensbaseret viden lederskab som bærende faktor Implementering af evidensbaseret viden lederskab som bærende faktor Bianca Albers Familie og Evidens Center Fokus for oplægget Evidens Ledelse Implementering Outcome Evidensbaseret vs. evidensinformeret

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingerne til 2013 I dag nåede vi op på 85 tilmeldte både. Det er stadig lidt lavere end samme tidspunkt sidste år. Tilmeldingen er åben

Læs mere

BILAG 8.1.B TIL VEDTÆGTER FOR EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR

BILAG 8.1.B TIL VEDTÆGTER FOR EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR BILAG 8.1.B TIL VEDTÆGTER FOR ZEALAND PHARMA A/S EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR ZEALAND PHARMA A/S INDHOLDSFORTEGNELSE/TABLE OF CONTENTS 1 FORMÅL... 3 1 PURPOSE... 3 2 TILDELING AF WARRANTS...

Læs mere

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 SAS VISUAL ANALYTICS 7.1 ADMINISTRATOR Mulighed for at udføre handlinger på flere servere

Læs mere

Partner session 3 Mamut - Temadag

Partner session 3 Mamut - Temadag Partner session 3 Mamut - Temadag 27. & 28. oktober 2009 Agenda Mamut Priskalkulator inklusive Mamut One Gennemgang af værktøj v/anders L. Nielsen & Claus Buch Savanne Præsentation af scannings og mobil

Læs mere

Microsoft Dynamics C5. Privat hotfix vedr. Timer indberettet i felt 200

Microsoft Dynamics C5. Privat hotfix vedr. Timer indberettet i felt 200 Microsoft Dynamics C5 Privat hotfix vedr. Timer indberettet i felt 200 INDHOLDSFORTEGNELSE En forløbelig afklaring... 3 Tilpasning af lønopsætningen... 3 Rettelser til kommafil... 3 Backup af lønopsætningen...

Læs mere

Vind Seminar Fredericia 4. april 2013 JOB2SEA

Vind Seminar Fredericia 4. april 2013 JOB2SEA Vind Seminar Fredericia 4. april 2013 JOB2SEA Rekrutteringsstrategi i et svært marked. Helle Drachmann Baggrund Job- & CV database Outplacement & transition management Koncern HR Selvstændig virksomhed

Læs mere

Factsheet. Microsoft Dynamics C5 Version 2008. eindkomst

Factsheet. Microsoft Dynamics C5 Version 2008. eindkomst Factsheet Microsoft Dynamics C5 Version 2008 eindkomst Indholdsfortegnelse Indledning... 3 Opsætning inden ibrugtagning... 3 Dan fil til eindkomst... 4 2 FACTSHEET EINDKOMST FOR MICROSOFT DYNAMICS C5 VERSION

Læs mere

POSitivitiES Positive Psychology in European Schools HOW TO START

POSitivitiES Positive Psychology in European Schools HOW TO START POSitivitiES Positive Psychology in European Schools HOW TO START POSitivitiES Positive Psychology in European Schools PositivitiES er et Comenius Multilateral europæisk projekt, som har til formål at

Læs mere

Nyhedsbrev 15 Februar 2008

Nyhedsbrev 15 Februar 2008 Nyhedsbrev 15 Februar 2008 FTU Boghandel Halmstadgade 6, 8200 Århus N Tlf: 86 10 03 38 / Mail:ftu@ats.dk / Inet: www.ftu.dk Hvem er FTU Boghandel? FTU Boghandel er en specialboghandel indenfor teknik,

Læs mere

LANDSCAPE SPRAWL. Marie Markman, billedkunstner, cand.hort.arch., ph.d.

LANDSCAPE SPRAWL. Marie Markman, billedkunstner, cand.hort.arch., ph.d. LANDSCAPE SPRAWL Marie Markman, billedkunstner, cand.hort.arch., ph.d. LANDSKABSSPREDNING Marie Markman, billedkunstner, cand.hort.arch., ph.d. I Center for Strategisk Byforskning har vi de sidste 10 år

Læs mere

Snitfladedokumentation til fagsystemer v 1.1

Snitfladedokumentation til fagsystemer v 1.1 MEMO Produced by: Peter Ravnholt 1. INDLEDNING... 2 SIKKERHED... 2 2. ÆNDRINGSLOG... 3 VERSION 1.1... 3 3. EKSEMPELSCENARIE... 3 UDFYLD ET NYT SPØRGESKEMA... 3 4. SERVICE CONTRACTS... 5 GETQUESTIONNAIREDEFINITIONLIST...

Læs mere

Mobile Hospitals. A world on wheels

Mobile Hospitals. A world on wheels Mobile Hospitals A world on wheels 01 HMK bilcon presentation history, products, facts 02 Mobile Blood Donation Units 3D film Examples Standard specifications Fully custom made solutions Film preparing

Læs mere

Søren Løbner (lobner) ddb Databaser 2007 10 10

Søren Løbner (lobner) ddb Databaser 2007 10 10 ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse

Læs mere

Nyhedsbrev løn. Microsoft Dynamics C5 2012 Service pack 1 Hotfix 5 & 2010 Service pack 2 Hotfix 3. Ferie 2014

Nyhedsbrev løn. Microsoft Dynamics C5 2012 Service pack 1 Hotfix 5 & 2010 Service pack 2 Hotfix 3. Ferie 2014 Microsoft Dynamics C5 2012 Service pack 1 Hotfix 5 & 2010 Service pack 2 Hotfix 3 Ferie 2014 Marts 2014 Contents Overførsel af ferieoplysninger pr. 01/05-2014 3 Overførsel af feriepenge på fratrådte funktionærer

Læs mere

Factsheet. Microsoft Dynamics C5 Version 2008. Web Services

Factsheet. Microsoft Dynamics C5 Version 2008. Web Services Factsheet Microsoft Dynamics C5 Version 2008 Web Services Indhold Indledning... 3 Integration til Krak... 4 Krak på debitor og kreditor... 4 Krak på løn... 8 Krak Datavask... 9 Integration til KOB... 10

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Microsoft Dynamics C5 2012 Service pack 2. Vejledning i forbindelse med ændring af Momsloven pr. 1.7.2014

Microsoft Dynamics C5 2012 Service pack 2. Vejledning i forbindelse med ændring af Momsloven pr. 1.7.2014 Vejledning i forbindelse med ændring af Momsloven pr. 1.7.2014 Microsoft Dynamics C5 2012 Service pack 2 Juni 2014 Indholdsfortegnelse Introduktion 3 Opsætning i C5 3 Som sælger: 3 Som køber: 6 OIOUBL

Læs mere

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2014-06-02. Version: 15. Author: SBJ/ANB. Target Level: Customer

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2014-06-02. Version: 15. Author: SBJ/ANB. Target Level: Customer Hosted Exchange Setup guide for e-mail clients & mobile devices Date: 2014-06-02 Version: 15 Author: SBJ/ANB Target Level: Customer Target Audience: End User Language: en-us Page 1 of 42 LEGAL INFORMATION

Læs mere

GIVE IT. SOME ENGlISH1. Hedwig

GIVE IT. SOME ENGlISH1. Hedwig Doth Ernst Jacobsen og Henriette BETH Brigham GIVE IT SOME ENGlISH1 Hedwig Give It Some English I 2014 Doth Ernst Jacobsen og Henriette Beth Brigham og Forlaget Hedwig Sat med Calibri og Futura Grafisk

Læs mere

Trolling Master Bornholm 2015

Trolling Master Bornholm 2015 Trolling Master Bornholm 2015 (English version further down) Booking af færge Bookingen af færgen til og fra Bornholm i forbindelse med konkurrencen åbner i morgen den 1. oktober kl. 10.00 Det sker på

Læs mere

Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning

Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning Jørgen Goul Andersen (email: goul@ps.au.dk) & Henrik Lolle (email: lolle@dps.aau.dk) Måling af lykke eksploderer!

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Europaudvalget 2013-14 EUU Alm.del Bilag 575 Offentligt

Europaudvalget 2013-14 EUU Alm.del Bilag 575 Offentligt Europaudvalget 2013-14 EUU Alm.del Bilag 575 Offentligt Kære folketingsmedlem, medlem af Europaudvalget Hver gang vi har haft EU parlamentsvalg har det lydt: nu skal vi have borgerne til at interessere

Læs mere

Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Architecture Framework (TOGAF)

Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Architecture Framework (TOGAF) Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Framework (TOGAF) Otto Madsen Director of Enterprise Agenda TOGAF og informationsarkitektur på 30 min 1. Introduktion

Læs mere

Den røde tråd fra testdækning til releasemetrikker

Den røde tråd fra testdækning til releasemetrikker Den røde tråd fra testdækning til releasemetrikker The art of developing software cheaper, in good quality and at schedule Software-Pro Agenda Den røde tråd fra testdækning til releasemetrikker Mange har

Læs mere

Automatic Code Orchestration from Descriptive Implementations

Automatic Code Orchestration from Descriptive Implementations ft her Automatic Code Orchestration from Descriptive Implementations older Professor Brian Vinter Niels Bohr Institute KU ft her Automatic Code Orchestration from Descriptive Implementations Prototypin

Læs mere

To set new standards of lifting and transportation equipment for wind turbine components. Our product groups

To set new standards of lifting and transportation equipment for wind turbine components. Our product groups To set new standards of lifting and transportation equipment for wind turbine components. Our product groups Embracing the full life cycle of the wind turbine Liftra develops and supplies services to

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 2

Trolling Master Bornholm 2016 Nyhedsbrev nr. 2 Trolling Master Bornholm 2016 Nyhedsbrev nr. 2 English version further down Opdatering af regler Dommerne har nu holdt møde og opdateret reglerne for konkurrencen i 2016. Vi har lyttet til nogle af de

Læs mere

EU vedtager et nyt program, som med 55 millioner EUR skal give børn større sikkerhed på internettet

EU vedtager et nyt program, som med 55 millioner EUR skal give børn større sikkerhed på internettet IP/8/899 Bruxelles, den 9 december 8 EU vedtager et nyt program, som med millioner EUR skal give børn større sikkerhed på internettet EU får et nyt program for forbedring af sikkerheden på internettet

Læs mere

HELLO FAQ DANSK RACKPEOPLE

HELLO FAQ DANSK RACKPEOPLE HELLO FAQ DANSK RACKPEOPLE Indhold 1 SPØRGSMÅL VED BRUG AF HELLO 2 1.1 Q: JEG VIL GODT HAVE ANDRE DELTAGERE I MIT VIDEOMØDE END DEM JEG HAR SENDT EN MØDEINDKALDELSE TIL HVORDAN GØR JEG DET? 2 1.2 Q: JEG

Læs mere

Sådan bruges skydere til at undersøge funktioner,

Sådan bruges skydere til at undersøge funktioner, Sådan bruges skydere til at undersøge funktioner, tangenter og integraler Freyja In optics Hreinsdóttir when it comes down to show the path of rays of light through glass, lenses or systems of University

Læs mere

How Al-Anon Works - for Families & Friends of Alcoholics. Pris: kr. 130,00 Ikke på lager i øjeblikket Vare nr. 74 Produktkode: B-22.

How Al-Anon Works - for Families & Friends of Alcoholics. Pris: kr. 130,00 Ikke på lager i øjeblikket Vare nr. 74 Produktkode: B-22. Bøger på engelsk How Al-Anon Works - for Families & Friends of Alcoholics Al-Anons grundbog på engelsk, der indfører os i Al- Anon programmet. Om Al-Anons historie, om forståelse af os selv og alkoholismen.

Læs mere

Vejledning til brugen af bybrandet

Vejledning til brugen af bybrandet Vejledning til brugen af bybrandet Indhold Hvorfor bruge bybrandet? s. 3-4 Inspiration/ big idea s. 5-10 Syv former for bybranding s. 11-18 Brug af logoet s. 19-21 Find desuden flere cases, designelementer

Læs mere

Projektledelse i praksis

Projektledelse i praksis Projektledelse i praksis - Hvordan skaber man (grundlaget) for gode beslutninger? Martin Malis Business Consulting, NNIT mtmi@nnit.com 20. maj, 2010 Agenda Project Governance Portfolio Management Project

Læs mere

Overblik Program 17. nov

Overblik Program 17. nov Overblik Program 17. nov Oplæg, diskussion og sketchnoting af artikler Pencils before pixels, Drawing as... og Learning as reflective conversation... Intro til markers Øvelser: Formundersøgelser & idegenerering

Læs mere

ExpressShipper BRUGERVEJLEDNING

ExpressShipper BRUGERVEJLEDNING ExpressShipper BRUGERVEJLEDNING Ver. 1.7 Marts 2015 INDHOLD 1 SHIPPPING MANAGER...3 1.1 Status på forsendelser... 3 2 FORSENDELSER... 4 2.1 Opret en ny forsendelse... 4 2.2 Forsendelser uden for EU (Internationale

Læs mere

Microsoft Dynamics C5. Tillæg til YearEnd 2012.

Microsoft Dynamics C5. Tillæg til YearEnd 2012. Microsoft Dynamics C5 Tillæg til YearEnd 2012. TILLÆG TIL ÅRSAFSLUTNING 2012 NY KOMPLET KOMMAFIL Rettelserne til kommafilen vedr. fri telefon der kom i begyndelsen af januar i år, var desværre ikke kommet

Læs mere

TGP 15 H. Betjeningsvejledning. Texas Power Line Pumper 2003 / 2

TGP 15 H. Betjeningsvejledning. Texas Power Line Pumper 2003 / 2 2003 / 2 Betjeningsvejledning Texas Power Line Pumper TGP 15 H Texas Andreas Petersen A/S Knullen 2 DK-5260 Odense S Tlf. 6395 5555 Fax 6395 5558 post@texas.dk - www.texas.dk ADVARSEL - Læs altid betjeningsvejledningen

Læs mere

Samlevejledning til tremmeseng 70 x 140 Assembly instruction for cot 70 x 140

Samlevejledning til tremmeseng 70 x 140 Assembly instruction for cot 70 x 140 Samlevejledning til tremmeseng 70 x 140 Assembly instruction for cot 70 x 140 Læs vejledningen godt igennem før du begynder. Read the assembly instruction carefully before you start. OLIVER FURNITURE /

Læs mere

PROGRAM 2010. Erfaring - Inspiration - Network - Idéer - Viden. HP Test Brugergruppe Brugerkonference. 11. november 2010

PROGRAM 2010. Erfaring - Inspiration - Network - Idéer - Viden. HP Test Brugergruppe Brugerkonference. 11. november 2010 PROGRAM Erfaring - Inspiration - Network - Idéer - Viden Hotel Scandic Copenhagen Vester Søgade 6 1601 København 09:00-09:30 Modtagelse og morgenmad 09:30-09:45 Velkomst og præsentation af konferencen

Læs mere

Vejledning i bestilling af CNM dna test hos The Alfort School i Frankrig www.cnmlabrador.com

Vejledning i bestilling af CNM dna test hos The Alfort School i Frankrig www.cnmlabrador.com Vejledning i bestilling af CNM dna test hos The Alfort School i Frankrig www.cnmlabrador.com På internettet kan du på hjemmesiden læse stort set alt om sygdommen Centronuclear Myopathy (CNM) hos Labrador.

Læs mere

PICTURE formater. Klog på SAS 15. marts 2012

PICTURE formater. Klog på SAS 15. marts 2012 PICTURE formater Klog på SAS 15. marts 2012 Agenda Hvad er et format Hvor adskiller et PICTURE format sig Teknik Eksempel 1 cprnr Eksempel 2 cprnr med "udsøgning" af fejlrecords Eksempel 3 et format, der

Læs mere

Skriveøvelse 2. Indledning. Emil Kirkegaard. Årskortnr. 20103300. Hold nr. 10

Skriveøvelse 2. Indledning. Emil Kirkegaard. Årskortnr. 20103300. Hold nr. 10 Navn: Emil Kirkegaard Årskortnr. 20103300 Hold nr. 10 Det stillede spørgsmål 1. Redegør for forholdet mellem det vellykkede liv (eudaimonia) og menneskelig dyd eller livsduelighed (areté) i bog 1 og bog

Læs mere

PDFmaps på smartphones

PDFmaps på smartphones PDFmaps på smartphones Kort udbyder - en enkel og (gratis) mulighed for at stille orienteringskort til rådighed på iphone/ipad og Android Bruger - en enkel og (gratis) mulighed for at downloade og anvende

Læs mere

What s Love Got to Do With It?

What s Love Got to Do With It? What s Love Got to Do With It? Gram Grid Present Continuous Vi sætter verberne i ing-form, når vi vil beskrive at noget er i gang. Der er fire hovedkategorier af ing-form: 1 Den almindelige form (common

Læs mere

BILAG 8.1.F TIL VEDTÆGTER FOR EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR

BILAG 8.1.F TIL VEDTÆGTER FOR EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR BILAG 8.1.F TIL VEDTÆGTER FOR ZEALAND PHARMA A/S EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR ZEALAND PHARMA A/S INDHOLDSFORTEGNELSE/TABLE OF CONTENTS 1 FORMÅL... 3 1 PURPOSE... 3 2 TILDELING AF WARRANTS...

Læs mere

Nyhedsmail, marts 2014 (scroll down for English version)

Nyhedsmail, marts 2014 (scroll down for English version) Nyhedsmail, marts 2014 (scroll down for English version) Kære Omdeler Forårssolen skinner i Nordjylland og dagene er mærkbart lysere til stor glæde for vores omdelere. Valg til arbejdsmiljøorganisationen,

Læs mere

UFM-IT and its administrative systems

UFM-IT and its administrative systems UFM-IT and its administrative systems Vis hjælpelin placering af o 1. Højre klik u Gitter og hjæ 2. Sæt hak ve Vis tegnehjæ 3. Sæt hak ve og Fastgør o 4. Vælg OK ens titel, etc menulinjen, ed / Sidefod

Læs mere

Øvelser til kurser med Adrie Noy September 2008

Øvelser til kurser med Adrie Noy September 2008 Opvarmning Øvelser til kurser med Adrie Noy September 2008 I alle nedenstående opvarmningsøvelser arbejdes sammen 2 og 2 Begge spillere har en uden bold, 1. Spillerne står over for hinanden med front mod

Læs mere

Dansk vejledning til installation og opsætning af Safe Eyes

Dansk vejledning til installation og opsætning af Safe Eyes Dansk vejledning til installation og opsætning af Safe Eyes Her kan du få vejledning til, hvordan du skaffer Safe Eyes og bruger det. Det mest nødvendige er her beskrevet på dansk men dog ikke det hele.

Læs mere

VidenForum Fokus på viden Viden i fokus

VidenForum Fokus på viden Viden i fokus VidenForum inviterer til seminarrække - Learn how to improve your intelligence and market analysis capabilities VidenForum har fornøjelsen at præsentere en række spændende seminarer i samarbejde med Novintel

Læs mere

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som du tidligere har modtaget

Læs mere

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

DKK 400 * DKK 500 * 2 cool and modern budget hotels in Copenhagen. Single room from. Double room from. Low prices, trendy design and central location

DKK 400 * DKK 500 * 2 cool and modern budget hotels in Copenhagen. Single room from. Double room from. Low prices, trendy design and central location 2 cool and modern budget hotels in Copenhagen Low prices, trendy design and central location Single room from DKK 400 * Double room from DKK 500 * *Applies to a limited number of rooms available for online

Læs mere

CASE: Royal Copenhagen

CASE: Royal Copenhagen When Your Website Goes Shopping CASE: Royal Copenhagen v/mads Gustafsen & Line Ghisler, Creuna Sitecoreseminar 6. februar 2008 CASE Royal Copenhagen præsenteret af Creuna Royal Copenhagen Kongelig Hofleverandør

Læs mere

SPILLET INDEHOLDER 1 spilleplade 6 spillefigurer 1 terning Spilleregler

SPILLET INDEHOLDER 1 spilleplade 6 spillefigurer 1 terning Spilleregler SPILLET INDEHOLDER 1 spilleplade 6 spillefigurer 1 terning Spilleregler SPILLETS GANG The Brætgame kan spilles af 2-6 spillere. Inden spillets start vælger hver spiller en spillefigur (Fritz, Hansi, Gynther,

Læs mere