Tuesday, 26 December 2017

Sybase iq binary alternativ


Binära datatyper Beskrivning För att lagra raden binär data, till exempel bilder, i en hexadecimalliknande notering, upp till en längd på (32K 1) byte. UNIQUEIDENTIFIER-datatypen används för lagring av UUID-värden (även känd som GUID). Binär data börjar med tecknen 0x eller 0X och kan innehålla alla kombinationer av siffror och stora bokstäver och små bokstäver A till F. Du kan ange kolumnlängden i byte eller använda standardlängden på 1 byte. Varje byte lagrar 2 hexadecimala siffror. Även om standardlängden är 1 byte rekommenderar Sybase att du alltid anger ett jämnt antal tecken för BINARY och VARBINARY kolumnlängd. Om du anger ett värde längre än den angivna kolonnlängden, avkortar Sybase IQ inmatningen till angiven längd utan varning eller fel. BINARY Binär data med längdlängdbyte. Om längden utelämnas är standard 1 byte. Maximalt tillåten storlek är 255 byte. Använd binär typ BINARY med fast längd för data där alla poster förväntas vara ungefär lika långa. Eftersom poster i BINARY-kolumner är nollpolstrade till kolonnlängdslängden. De kan behöva mer lagringsutrymme än poster i VARBINÄRA kolumner. VARBINÄR Binär data upp till en längd av maxlängden byte. Om maxlängden utelämnas är standard 1 byte. Maximalt tillåten storlek är (32K 1) byte. Använd den binära typen VARBINARY för variabellängd för data som förväntas variera kraftigt. Som ett separat licensierat alternativ stöder Sybase IQ binära stora objekt (BLOB) data med en längd från noll (0) till 512TB (terabyte) för en IQ-sidstorlek på 128KB eller 2PB (petabyter) för en IQ-sidstorlek på 512KB. Maximal längd är lika med 4GB multiplicerad med databasens sidstorlek. Se Stora objekthantering i Sybase IQ. För information om LONG BINARY och IMAGE datatyper, se Binära datatyper. Behandling av efterföljande nollor Alla BINARY-kolonner är vadderade med nollor till kolonnens fulla bredd. Nollbultar är avkortade i alla VARBINÄRA kolumner. I följande exempel skapas en tabell med alla fyra variationerna av BINARY och VARBINARY datatyper definierade med NULL och NOT NULL. Samma data infogas i alla fyra kolumnerna och är vadderade eller avkortade enligt kolumndatatypen. Beroende på plattformen Den exakta form som du anger ett visst värde beror på vilken plattform du använder. Därför kan beräkningar med binär data ge olika resultat på olika maskiner. För plattformsoberoende konverteringar mellan hexadecimala strängar och heltal använder du INTTOHEX - och HEXTOINT-funktionerna i stället för den plattformsspecifika CONVERT-funktionen. För detaljer, se avsnittet Konverteringsfunktioner för datatyp. Stringsoperatörer Konkurrenssträngoperatörerna och båda stöder binär typdata. Explicit konvertering av binära operander till teckendatatyper är inte nödvändig hos operatören. Explicit och implicit datakonvertering ger emellertid olika resultat. Begränsningar av BINARY och VARBINARY data Följande begränsningar gäller för kolumner som innehåller BINARY och VARBINARY data: Du kan inte använda aggregatfunktionerna SUM. AVG. STDDEV. eller VARIANCE med binära datatyper. Aggregatet fungerar MIN. MAX. och COUNT stöder de binära datatyperna BINARY och VARBINARY. HNG. WD. DATUM . TID. och DTTM-index stöder inte BINARY eller VARBINARY data. Endast standardindex och CMP-indextyper stöds för VARBINAR-data som är större än 255 byte i längd. Bitoperationer stöds på BINARY och VARBINARY data som är 8 byte eller mindre i längd. Kompatibilitet Behandlingen av efterföljande nollor i binär data skiljer sig mellan Sybase IQ, SQL Anywhere och Adaptive Server Enterprise: Tabell 3-4: Behandling av efterföljande nollor Avkortad, inte vadderad Adaptive Server Enterprise, SQL Anywhere och Sybase IQ stöder STRINGRTRUNCATION-databasen alternativ, som påverkar felmeddelande rapportering när en INSERT eller UPDATE-sträng är avkortad. För Transact-SQL-kompatibla strängsammanställningar, sätt STRINGRTRUNCATION-alternativet till samma värde i båda databaserna. Du kan också ställa in STRINGRTRUNCATION-alternativet ON när du laddar data i en tabell för att varna dig om att data är för stora för att läsa in i fältet. Standardvärdet är PÅ. Bitoperationer på binär typdata stöds inte av Adaptive Server Enterprise. SQL Anywhere stöder endast bitoperationer mot de första fyra bitarna av binär typdata. Sybase IQ stöder bitoperationer mot de första åtta bitarna av binär typdata. UNIQUEIDENTIFIER Används för lagring av UUID-värden (även känt som GUID). UNIQUEIDENTIFIER datatyp används ofta för en primär nyckel eller annan unik kolumn för att hålla UUID-värden (universellt unika identifierare) som kan användas för att unikt identifiera rader. NEWID-funktionen genererar UUID-värden på ett sådant sätt att ett värde som produceras på en dator inte matchar en UUID som produceras på en annan dator. UNIQUEIDENTIFIER-värden som genereras med NEWID kan därför användas som nycklar i en synkroniseringsmiljö. Till exempel uppdaterar följande uttalande tabellen mytab och sätter värdet på kolumnen uidcol till en unik identifierare som genereras av NEWID-funktionen, om nuvarande värde för kolumnen är NULL. Om du utför följande påstående returneras den unika identifieraren som en BINARY (16). Till exempel kan värdet vara 0xd3749fe09cf446e399913bc6434f1f08. Du kan konvertera denna sträng till ett läsbart format med funktionen UUIDTOSTR (). UUID-värden refereras också till som GUIDs (globalt unikt identifierare). Funktionerna STRTOUUID och UUIDTOSTR används för att konvertera värden mellan UNIQUEIDENTIFIER och strängrepresentationer. UNIQUEIDENTIFIER värden lagras och returneras som BINARY (16). Eftersom UNIQUEIDENTIFIER-värdena är stora, använder UNSIGNED BIGINT eller UNSIGNED INT-identitetskolumner istället för UNIQUEIDENTIFIER effektivare om du inte behöver unika identifierare för korsdatabaser. Standarder och kompatibilitet för UNIQUEIDENTIFIER SQL92-leverantörstillägg. Sybase Stöds av SQL Anywhere. Inte stöds av Adaptive Server Enterprise. Bakåtkompatibilitet I databaser skapade före Sybase IQ version 12.7, STRTOUUID. UUIDTOSTR. och NEWID-funktioner stöddes genom CIS-funktionskompensation. I versioner 15.1 och senare, STRTOUUID. UUIDTOSTR. och NEWID-funktioner är inbyggda Sybase IQ-funktioner. För mer information relaterad till UNIQUEIDENTIFIER: LAD TABLE statement DATETIME (MMDDYY hh: mm: ssaa) Sybase IQ har inbyggda belastningsoptimeringar för vanliga datum, tid och datetimeformat. Om dina data som ska laddas överensstämmer med ett av dessa format kan du minska laddningstiden avsevärt genom att använda det lämpliga formatet. För en lista över dessa format och detaljer om hur du optimerar prestanda när du fyller i datum och datetime-data, se Kapitel 7, Flytta data in och ut ur databaser i Sybase IQ System Administration Guide. Du kan också ange datetime-fältet som ett ASCII-fält med fast bredd (som beskrivet ovan) och använd alternativet FILLER (1) för att hoppa över kolumnavgränsaren. Mer information om hur du specificerar datum - och tidsdata finns i datatyper Datum och tid eller Kapitel 7, Flytta data in och ut ur databaser i Sybase IQ System Administration Guide. NULL-delen av kolumnspecifikationen anger hur du behandlar vissa inmatningsvärden som NULL-värden när du laddar in i tabellkolumnen. Dessa tecken kan innehålla BLANKS, ZEROS eller någon annan lista över bokstäver du definierar. När du anger ett NULL-värde eller läser ett NULL-värde från källfilen måste destinationskolumnen innehålla NULLs. ZEROS tolkas enligt följande: cellen är inställd på NULL om (och endast om) ingångsdata (före konvertering, om ASCII) är alla binära nollor (och inte tecken nuller). Om ingångsdata är tecken noll, gör följande: NULL (ZEROS) får aldrig cellen att vara NULL. NULL (0) får cellen att vara NULL. Om ingångsdata är binär nolla (alla bitar raderas), då: NULL (ZEROS) får cellen att vara NULL. NULL (0) orsakar aldrig att cellen är NULL. Till exempel, om ditt LOAD-meddelande innehåller col1 date (yymmdd) null (nollor) och datumet är 000000 får du ett fel som indikerar att 000000 inte kan konverteras till en DATE (4). För att få belastning att infoga ett NULL-värde i col1 när data är 000000, skriv NULL-klausulen som null (000000). eller ändra data till lika binära nollor och använd NULL (ZEROS). Om längden på en VARCHAR-cell är noll och cellen inte är NULL, får du en nolllängdcell. För alla andra datatyper, om cellens längd är noll, sätter Sybase IQ ett NULL. Detta är ANSI-beteende. För icke-ANSI-behandling av nolllängdskaraktärdata, ställ in NonAnsiNullVarchar-databasalternativet. En annan viktig del av lastspecifikationen är FILLER-alternativet. Det indikerar att du vill hoppa över ett angivet fält i källinmatningsfilen. Till exempel kan det finnas tecken i slutet av rader eller till och med hela fält i de inmatningsfiler som du inte vill lägga till i tabellen. Precis som i kolumnspecifik definitionen kan FILLER du ange ASCII-fast längd av byte, tecken med variabel längd avgränsad av en separator och binära fält med prefix-byte. filnamnsträng Filnamnsträngen överförs till servern som en sträng. Strängen är därför föremål för samma formateringskrav som andra SQL-strängar. I synnerhet: För att ange katalogvägar i Windows-system måste backslash-tecknet representeras av två backslashes. Därför är anmärkningen att ladda data från filen c: tempinput. dat till anställd tabellen: Banans namn är relativt databasservern, inte till klientprogrammet. Om du kör uttalandet på en databasserver på en annan dator, refererar katalognamnen till kataloger på serverns maskin, inte på klientmaskinen. Följande beskriver varje av klausulerna i uttalandet: WORD SKIP Tillåter att belastningen fortsätter när den möter data längre än gränsen som anges när ordindex skapades. Om en rad inte är laddad eftersom ett ord överskrider den maximala tillåtna storleken, skrivs en varning till. iqmsg-filen. Överträdelser av ordstorlek kan eventuellt loggas till MESSAGE LOG-filen och avvisade rader som är inloggade i ROW LOG-filen som anges i LOAD TABLE-förklaringen. Om alternativet inte är angivet, rapporterar LOAD TABLE ett fel och rullar tillbaka vid det första förekomsten av ett ord som är längre än den angivna gränsen. nummer anger hur många gånger ord som överskrider det maximala tillåtna ordlängden som inte stöds, ignoreras. 0 (noll) betyder att det inte finns någon gräns. QUOTES Denna parameter är valfri och standard är ON. När QUOTES är påslagna, förväntar LOAD TABLE att inmatningssträngar ska bifogas citattecken. Citattecknet är antingen en apostrof (ett citat) eller ett citatmärke (dubbel citat). Det första sådana tecknet som uppträder i en sträng behandlas som citattecken för strängen. Stringdata måste avslutas med ett matchande citat. Med QUOTES ON. kolumn - eller radavgränsningstecken kan inkluderas i kolumnvärdet. Ledande och slutliga citattecken antas inte vara en del av värdet och utesluts från det laddade datavärdet. Att inkludera ett citattecken i ett värde med QUOTES ON. använd två citat. Till exempel innehåller följande rad ett värde i den tredje kolumnen som är ett enda citattecken: Med STRIP aktiverat (standard), avlägsnas efterföljande ämnen från värden innan de sätts in. Spårämnen avlägsnas endast för icke-citerade strängar. Citerade strängar bibehåller sina efterföljande ämnen. Ledande tomma eller TAB-tecken trimmas endast när QUOTES-inställningen är PÅ. Datautvinningsanläggningen ger alternativ för hantering av citat (TEMPEXTRACTQUOTES. TEMPEXTRACTQUOTESALL. Och TEMPEXTRACTQUOTE). Om du planerar att ladda tillbaka den extraherade filen med strängfält som innehåller kolumn - eller radavgränsare under standard ASCII-extraktion, använd alternativet TEMPEXTRACTBINARY för extraktet och FORMAT binära och QUOTES OFF-alternativen för LOAD TABLE. Alternativet QUOTES ON gäller endast kolumnavgränsade ASCII-fält. Med QUOTES ON. Den första bokstaven för en kolumnavgränsare eller radterminator kan inte vara ett enda eller dubbelt citatmärke. QUOTES-alternativet gäller inte för att ladda data från binärt stort objekt (BLOB) eller CLOB-data från sekundärfilen, oavsett inställning. Ett ledande eller efterföljande citat laddas som en del av CLOB-data. Två på varandra följande citat mellan omslutande citat laddas som två på varandra följande citat med alternativet QUOTES ON. Adaptive Server Enterprise BCP stöder inte QUOTES-alternativet. Alla fältdata kopieras in eller ut motsvarar inställningen QUOTES OFF. Eftersom QUOTES ON är standardinställningen för Sybase IQ LOAD TABLE-satsen måste du ange QUOTES OFF när du importerar ASE-data från BCP-utdata till en Sybase IQ-tabell. Om LOAD TABLE möter några icke-vita tecken efter slutkittecken för ett sluten fält, rapporteras följande fel och lastoperationen rullas tillbaka: Non-SPACE-text som finns efter avslutad citattecken för ett slutet fält. SQLSTATE: QTA14 SQLCODE: -1005014L Med QUOTES ON. Om en enkel eller dubbel citat anges som kolumnavgränsarens första tecken, rapporteras ett fel och lastoperationen misslyckas: Enstaka eller dubbla citattecken kan inte vara den första bokstaven för kolumnavgränsare eller radavslutare med QUOTES-alternativet ON. SQLSTATE: QCA90 SQLCODE: -1013090L CHECK CONSTRAINTS Detta alternativ är standard på ON. När du anger CHECK CONSTRAINTS ON. kontrollera begränsningar utvärderas och du är fri att ignorera eller logga in. Inställning CHECK CONSTRAINTS OFF gör att Sybase IQ ignorerar alla kontrollbegränsningsbrott. Detta kan vara användbart, till exempel vid databasåterbyggnad. Om ett bord har kontrollbegränsningar som kallar användardefinierade funktioner som ännu inte har skapats, misslyckas ombyggnaden om inte detta alternativ är inställt på OFF. Detta alternativ utesluter varandra med följande alternativ. Om något av dessa alternativ anges i samma belastning, resulterar ett fel: IGNORE CONSTRAINT ALL IGNORE CONSTRAINT CHECK DEFAULTS Om alternativet DEFAULTS är ON (standard) och kolumnen har ett standardvärde används det värdet. Om alternativet DEFAULTS är AV är någon kolumn som inte finns i kolumnlistan tilldelad NULL. Inställningen för alternativet DEFAULTS gäller för alla kolumn DEFAULT-värden, inklusive AUTOINCREMENT. För detaljerad information om användningen av kolumn DEFAULT-värden med belastningar och insatser, se Använda kolumnvärden i kapitel 9, Säkerställa dataintegritet i Sybase IQ System Administration Guide. ESCAPES Om du lämnar en kolumnspecifik definition för ett inmatningsfält och ESCAPES är ON (standard), kännetecknas tecken som följer backslash-tecknet och tolkas som specialtecken av databasservern. Newline-tecken kan inkluderas som kombinationen n, andra tecken kan inkluderas i data som hexadecimal ASCII-koder, t. ex. x09 för fliktecken. En sekvens av två backslash-tecken () tolkas som en enda backslash. För Sybase IQ måste du ställa in det här alternativet. FORMAT Sybase IQ stöder ASCII och binära inmatningsfält. Formatet definieras vanligtvis av kolumnspecifikationen som beskrivs ovan. Om du släpper bort den definitionen för en kolumn använder Sybase IQ som standard det format som definieras av det här alternativet. Inmatningslinjer antas ha ascii (standard) eller binära fält, en rad per rad, med värden separerade av kolumnavgränsningstecken. DELIMITED BY Om du släpper bort en kolumnavgränsare i kolumnspecifik definitionen är standard kolumnavgränsningskaraktär ett komma. Du kan ange en alternativ kolumnavgränsare genom att tillhandahålla ett enda ASCII-tecken eller den hexadecimala teckenrepresentationen. DELIMITED BY-klausulen är enligt följande: För att använda newline-tecknet som en avgränsare kan du ange antingen den speciella kombinationen n eller dess ASCII-värde x0a. Även om du kan ange upp till fyra tecken i kolumnspecifik avgränsningssträng. Du kan bara ange ett enda tecken i DELIMITED BY-klausulen STRIP Med STRIP aktiverat (standard), spärrämnen avlägsnas från värden innan de sätts in. Detta gäller endast för VARCHAR-data som inte gäller för ASCII-fixbreddinsatser. För att stänga av STRIP-alternativet är klausulen följande: Spårämnen avlägsnas endast för icke-noterade strängar. Citerade strängar bibehåller sina efterföljande ämnen. Alternativt kan alternativet FILLER låta dig vara mer specifikt i antalet byte att ta bort i stället för alla efterföljande utrymmen. Det är mer effektivt för Sybase IQ att ha det här alternativet, och det följer ANSI-standarden när det handlar om efterföljande ämnen. (char data är alltid vadderad, så det här alternativet påverkar bara varchar data.) MED CHECKPOINT Standardinställningen är AV. Om den är inställd på ON, utfärdas en kontrollpunkt efter att ha slutfört och loggat utdraget. Om MED CHECKPOINT ON inte är specificerat, och återhämtning krävs senare, behövs datafilen som används för att ladda tabellen för att återhämtningen ska slutföras. Om MED CHECKPOINT ON är specificerat och återhämtning efterhand krävs, börjar den efter kontrollpunkten och datafilen behöver inte vara närvarande. BLOCK FACTOR Anger blockeringsfaktor eller antal poster per block som användes när ett tejp skapades. Detta alternativ är inte giltigt för inlägg från inmatningsfält med variabel längd, använd alternativet BLOCKSIZE istället. Det påverkar emellertid alla filinsatser (inklusive från disk) med inmatningsfält med fast längd och det kan dramatiskt påverka prestanda. Du kan inte ange det här alternativet tillsammans med alternativet BLOCK SIZE. Standardvärdet är 10 000. BLOCK SIZE Anger standardstorleken i byte där inmatning ska läsas. Det här alternativet påverkar endast variabel längd ingångsdata som läses från filer som den inte är giltig för inmatningsfält med fast längd. Det liknar BLOCK FACTOR. men det finns inga begränsningar för förhållandet mellan rekordstorlek och blockstorlek. Du kan inte ange det här alternativet tillsammans med alternativet BLOCK FACTOR. Standardvärdet är 500 000. BYTE ORDER Anger byteordningen under läsningar. Det här alternativet gäller alla binära inmatningsfält. Om ingen definieras ignoreras det här alternativet. Sybase IQ läser alltid binär data i formatet som är inbyggt i maskinen som den körs på (standard är NATIVE). Du kan också ange: HÖG när multibytkvantiteter har hög orderbyte först (för stora endiska plattformar som Sun, IBM AIX och HP). LÅG när multibytkvantiteter har den låga ordningsbyten först (för små endianplattformar som Windows). LIMIT Anger det maximala antalet rader som ska införas i tabellen. Standardvärdet är 0 för ingen gräns. Maximalt är 2GB - 1. NOTIFY Anger att du meddelas med ett meddelande varje gång det angivna antalet rader har infogats i tabellen. Standardvärdet är varje 100 000 rader. Värdet på det här alternativet strider mot värdet av NOTIFYMODULUS-databasalternativet. PÅ FILFEL Anger åtgärden Sybase IQ tar när en inmatningsfil inte kan öppnas eftersom den inte existerar eller du har fel behörigheter att läsa filen. Du kan ange något av följande: ROLLBACK avbryter hela transaktionen (standard). FINISH avslutar de redan genomförda insatserna och avslutar lastoperationen. CONTINUE returnerar ett fel men hoppar bara över filen för att fortsätta lastoperationen. Du kan inte använda det här alternativet med insatser med partiell bredd. Endast en PÅ FILE ERROR-klausul är tillåten. PREVIEW Visar inmatningen av inmatningen i måltabellen inklusive startposition, namn och datatyp för varje kolumn. Sybase IQ visar denna information vid belastningens början. Om du skriver till en loggfil ingår denna information också i loggen. Det här alternativet är särskilt användbart med inmatningar med partiell bredd. RAD DELIMITED BY Anger en sträng upp till 4 byte i längd som indikerar slutet på en inmatningsrekord. Du kan bara använda det här alternativet om alla fält i raden är något av följande: Avgränsad med kolumnterminatorer Data definierad av kolumnen DATE eller DATETIME kolumnspecifika ASCII-fält med fast längd Du kan inte använda det här alternativet om några inmatningsfält innehåller binära data. Med det här alternativet får en radterminator att alla saknade fält ställs in till NULL. Alla rader måste ha samma radavgränsare, och det måste skilja sig från alla kolumnavgränsare. Rad - och fältavgränsningssträngarna kan inte vara en första delmängd av varandra. Du kan till exempel inte ange som fältavgränsare och som radavgränsare, men du kan ange som fältavgränsare med den radavgränsaren. Om en rad saknar sina avgränsare returnerar Sybase IQ ett fel och rullar tillbaka hela belastningstransaktionen. Det enda undantaget är slutrapporten för en fil där den rullar tillbaka den raden och returnerar ett varningsmeddelande. På Windows visas en radavgränsare vanligen av den nya linjens tecken följt av vagnens returkaraktär. Det kan hända att du måste ange detta som avgränsningssträngen (se ovan för beskrivning) för antingen det här alternativet eller FILLER. SKIP Gör det möjligt att definiera ett antal rader för att hoppa över i början av inmatningstabellerna för denna belastning. Standardvärdet är 0. START RAD ID Anger rekordidentifikationsnumret för en rad i Sybase IQ-tabellen där den ska börja infoga. Det här alternativet används för inmatningar med partiell bredd, som sätter in i en delmängd av kolumnerna i tabellen. Som standard läggs nya rader överallt där det finns plats i tabellen, och varje insats startar en ny rad. Inlägg med delade bredder måste startas vid en befintlig rad. De måste också infoga data från källfilen till destinationstabellen positionellt genom kolumn, så du måste ange destinationskolumnerna i samma ordning som motsvarande källkolumner. Definiera formatet för varje ingångskolumn med en kolumnspecifikation. Standardinställningen är 0. Mer information om inmatningar med partiell bredd finns i Kapitel 7, Flytta data in och ut ur databaser i Sybase IQ System Administration Guide. Använd alternativet START RÅD-ID endast för partiella breddinsatser. Om de kolumner som laddas innehåller redan data, misslyckas insatsen. Lösenordsformat Anger att filen har Sybase IQ-internlastformat för varje kolumn som skapats av en tidigare version av Sybase IQ (före version 12.0). Det här alternativet för belastning har följande begränsningar: Du kan inte ange någon kolumnspecifikation (t. ex. ASCII eller PREFIX) för en annan kolumn än BINARY. Detta inkluderar NULL-specifikationerna. Om du behöver ladda nullvärden för en kolumn med BINARY-kolumnspecifik. du måste ange nyckelordet WITH NULL BYTE eller Sybase IQ returnerar ett fel. Du kan inte använda alternativen DELIMITED BY eller ROW DELIMITED BY med UNLOAD FORMAT. PÅ PARTIAL INPUT ROW Anger åtgärden som ska vidtas när en partiell ingångsrad uppträder under en belastning. Du kan ange något av följande: CONTINUE utfärdar en varning och fortsätter lastoperationen. Detta är standardvärdet. ROLLBACK avbryter hela belastningsoperationen och rapporterar felet. Delvis inmatningsrekord hoppas över på EOF. SQLSTATE: QDC32 SQLSTATE: -1000232L IGNORE CONSTRAINT Anger om du vill ignorera KONTROLL, UNIQUE, NULL, DATA VALUE och FOREIGN KEY Integritetsbegränsningsbrott som uppstår under en belastning och det maximala antalet överträdelser som ska ignoreras innan du initierar en återuppringning. Angivande av varje begränsningstyp har följande resultat: KONTROLLGRÄNS Om gräns specificerar noll är antalet otillbörliga begränsningsbegränsningar att ignorera oändlig. Om CHECK inte är angivet, orsakar den första förekomsten av någon KONTROLL-begränsningsbrott att LOAD-meddelandet rullar tillbaka. Om gränsen är nonzero, orsakar gränsen 1 förekomsten av en KONTROLL-begränsningsbrott att lasten rullar tillbaka. UNIQUE gräns Om gränsen anger noll, är antalet otillbörliga begränsningar som ska ignoreras oändligt. Om gränsen är nonzero, orsakar gränsen 1 förekomsten av en UNIQUE begränsningsbrott att lasten rullar tillbaka. NULL gräns Om gränsen anger noll, är antalet överträdelser för NULL-begränsningar att ignorera oändlig. Om gränsen är nonzero, orsakar gränsen 1 förekomsten av en NULL-begränsningsbrott att lasten rullar tillbaka. Utländsk tangentgräns Om gränsen anger noll är antalet oändliga strängbegränsningar som ska ignoreras oändliga. Om gränsen är ojämn, orsakar gränsen 1 förekomsten av en FOREIGN KEY-begränsningsbrott att lasten rullar tillbaka. DATA VALUE limit Om databasalternativet CONVERSIONERROR ON rapporteras ett fel och uttalandet rullar tillbaka. Om gränsen anger noll, är antalet överträdelser av DATA VALUE-begränsningar (datatypsomvandlingsfel) att ignorera oändlig. Om gränsen är nonzero, orsakar gränsen 1 förekomsten av en DATA VALUE-begränsningsbrott att lasten rullar tillbaka. ALL limit Om databasalternativet CONVERSIONERROR ON. Ett fel rapporteras och uttalandet rullar tillbaka. Om gränsen anger noll, är den kumulativa summan av all integritetsbegränsningsbrott att ignorera oändlig. Om gränsen är ojämn, rullar lasten tillbaka när den kumulativa summan av alla ignorerad UNIQUE, NULL, DATA VALUE och FOREIGN KEY integrity constraint-överträdelser överstiger gränsvärdet. Till exempel anger du följande IGNORE CONSTRAINT-alternativ: Det totala antalet integritetsbegränsningsbrott kan inte överstiga 200, medan det totala antalet NULL och UNIQUE begränsningsbegränsningar inte får överstiga 50 respektive 100. När någon av dessa gränser överskrids rullar LOAD TABLE-räkningen tillbaka. En enda rad kan ha mer än en integritetsbegränsning. Varje förekomst av en integritetsbegränsningsbrott räknas mot gränsen för den typen av överträdelse. Sybase rekommenderar starkt att gränsvärdet för IGNORE CONSTRAINT ställs in till ett icke-nollvärde om du loggar på överträdelserna om ignorerad integritetsbegränsning. Registrering av ett alltför stort antal överträdelser påverkar belastningens prestanda. Om KONTROLL, UNIQUE, NULL eller FOREIGN KEY inte anges i IGNORE CONSTRAINT-klausulen, rullas lasten tillbaka vid den första förekomsten av var och en av dessa typer av integritetsbegränsning. Om DATA VALUE inte anges i IGNORE CONSTRAINT-klausulen, rullar lasten tillbaka vid den första förekomsten av denna typ av integritetsbegränsning, om inte databasalternativet CONVERSIONERROR OFF. Om CONVERSIONERROR OFF. En varning rapporteras för eventuell DATA VALUE-begränsningsbrott och belastningen fortsätter. När belastningen slutförts loggas ett informationsmeddelande angående integritetsbegränsningsbrott i. iqmsg-filen. Det här meddelandet innehåller antalet integritetsbegränsningar som inträffade under belastningen och antalet rader som hoppades över. MESSAGE LOG Anger namnen på filer för att logga in information om brott mot integritetsbegränsningar och vilka typer av överträdelser som ska loggas. Timestämplar som anger start och slutförande av belastningen loggas både i MESSAGE LOG och ROW LOG-filerna. Både MESSAGE LOG och ROW LOG måste anges, eller ingen information om integritetsbrott loggas. Om KLEIN LOG-klausulen inte är angiven loggas inga uppgifter om integritetsbegränsningsbrott. Endast tidstämplar som anger start och slutförande av belastningen loggas. Information är inloggad på alla överträdelser av integritetsbegränsning som anges i CLASS LOG-klausulen eller för alla ordlängdsbrott om sökordet WORD är angivet. Om begränsningsbrottslingar loggas, genererar varje förekomst av en integritetsbegränsningsbrott exakt en rad information i MESSAGE LOG-filen. Antalet rader (fel rapporterade) i MESSAGE LOG-filen kan överstiga gränsen för IGNORE CONSTRAINT, eftersom belastningen utförs av flera trådar som kör parallellt. Mer än en tråd kan rapportera att antalet överträdelseöverträdelser har överskridit den angivna gränsen. Om begränsningsbrottslingar loggas, loggas exakt en rad information i ROGLOG-filen för en given rad, oavsett antalet brott mot integritetsbegränsningar som uppträder i den raden. Antalet separata fel i MESSAGE LOG-filen kanske inte exakt matchar antalet rader i ROW LOG-filen. Skillnaden i antalet rader beror på parallell bearbetning av belastningen som beskrivits ovan för MESSAGE LOG. MESSAGE LOG och ROW LOG-filerna kan inte vara råa partitioner. Om filen MESSAGE LOG eller ROW LOG redan finns finns nya uppgifter bifogade filen. Att ange ett ogiltigt filnamn för filen MESSAGE LOG eller ROW LOG genererar ett fel. Att ange samma filnamn för MESSAGE LOG och ROW LOG-filerna skapar ett fel. Olika kombinationer av alternativen IGNORE CONSTRAINT och MESSAGE LOG resulterar i olika loggningsåtgärder, som anges i tabell 6-11. Tabell 6-11: LOAD TABLE loggningsåtgärder IGNORE CONSTRAINT specificerat Inget loggas. Den första integritetsbegränsningsbrottet orsakar en återgång. Sybase rekommenderar starkt att gränsvärdet IGNORE CONSTRAINT ställs till ett icke-nollvärde, om du loggar in i de ignorerade integritetsbegränsningshandlingarna. Om en enda rad har mer än en integritetsbegränsning, skrivs en rad för varje överträdelse till MESSAGE LOG-filen. Registrering av ett alltför stort antal överträdelser påverkar belastningens prestanda. LOGG DELIMITED BY Anger separatorn mellan data värden i filen ROW LOG. Standardavskiljaren är ett komma. Biverkningar SQL92-leverantörstillägg. Sybase Ej tillämpligt. Tillstånd De behörigheter som krävs för att utföra ett LOAD TABLE-meddelande beror på kommandoradsalternativet för databasserver - gl, enligt följande: Om alternativet - GL är inställt på ALL måste du vara ägare till tabellen, ha DBA-auktoritet eller ha ALTER lov. Om alternativet - gl är inställt på DBA måste du ha DBA-auktoritet. Om alternativet - gl är inställt på NONE, är LOAD TABLE inte tillåtet. LOAD TABLE kräver också ett exklusivt lås på bordet. Kapitel 7: Flytta data in och ut ur databaser Bulk laddar data med hjälp av LOAD TABLE-satsen LOAD TABLE-satsen används för effektiv import av data från en text eller binär fil till en befintlig databas tabell. Den laddar upp data i alla kolumnindex du har definierat, liksom alla som skapas automatiskt. De behörigheter som krävs för att utföra ett LOAD TABLE-meddelande anges på serverns kommandorad, med hjälp av - gl-alternativet. Sybase rekommenderar inställningen - gl alla, vilket gör att alla användare kan ladda eller lossa ett bord. Det här är standardinställningen som anges av startasiq. Om alternativet - gl är inställt på ALL måste du vara ägare till tabellen, ha DBA-auktoritet eller ha ALTER-tillåtelse för att kunna använda LOAD TABLE-förklaringen. Du behöver också INSERT-behörighet på bordet. Se beskrivningen av alternativet ON FILE ERROR load för vad som händer när inmatningsfilfel uppstår under en belastning. Använda kommandofiler för att ladda data För att ladda stora mängder data skapar de flesta användare kommandofiler. För att skapa en kommandofil följer du anvisningarna i kapitlet Komma igång med DBISQL i Introduktion till Sybase IQ. Transaktionsbehandling och LOAD TABLE När du utfärdar LOAD TABLE-förklaringen för en IQ-tabell, sker en sparpunkt automatiskt innan data laddas. Om lasten slutförs framgångsrikt släpper Sybase IQ sparringspunkten. If the load fails, the transaction rolls back to the savepoint. This approach gives you flexibility in committing transactions. For example, if you issue two LOAD TABLE commands, you can ensure that either both commit or neither. When you issue LOAD TABLE for a Catalog Store table, there is no automatic savepoint. If the load succeeds, it commits automatically. If the load fails, it rolls back. You cannot roll back a successful load of a Catalog Store table. Integrity constraints and LOAD TABLE LOAD TABLE allows you to control load behavior when integrity constraints are violated and to selectively log information about the violations. You can specify whether to ignore UNIQUE, NULL, DATA VALUE, andor FOREIGN KEY constraint violations that occur during a load and the maximum number of violations to ignore before initiating a rollback. You can also direct the load to log information about specific types of integrity constraint violations both per violation in a message log and per row in a row log. For information on the contents and format of the message and row logs, see Logging integrity constraint violations . Summary of LOAD TABLE syntax The basic form of the LOAD TABLE statement is: For usage and syntax details of all of the LOAD TABLE parameters, see LOAD TABLE statement in Chapter 6, SQL Statements of the Sybase IQ Reference Manual . Load specification The load-specification does the following: Lists each column to be loaded and describes the data in it. A column can contain fixed-length data, variable-length characters delimited by a separator, or data that uses a binary prefix to represent the number of bytes being read. Specifies FILLER format for any fields you want to skip. The syntax for load-specification is as follows: For each column, you can specify a column-spec . If you omit this option, the format information in the load-options applies to this column. The column-spec and load-options format information tell Sybase IQ what type of data to expect, and how to convert it into a compatible data format if necessary. Syntax for the column-spec is: You can specify the following types of data in the column-spec : Data with bytes of fixed length. Although specified by the keyword ASCII, any 8-bit characters may be used, and for 16-bit character sets, two 8-bit characters are used for each 16-bit character. No code conversion is performed for char and varchar fields except truncation, blank stripping, or blank padding. ASCII is also used to fill numeric data, time, and datetime fields. In each case, the conversion is the same if the value were first inserted as a character field, then cast to the data type of the column in the table. The input-width value is an integer value indicating the fixed width in bytes of the input field in every record. Binary fields that use a number of PREFIX bytes (1, 2, or 4) to specify the length of the binary input. The BINARY keyword indicates that data is already converted to the internal form (except for when the byte-order load option is specified. Note that if the data is unloaded using the extraction facility with the TEMPEXTRACTBINARY option set ON, then you must use the BINARY WITH NULL BYTE parameter for each column when you load the binary data. Variable-length characters delimited by a separator. You specify the delimiter-string as a string of one to four ASCII characters, or any 8bit hexadecimal ASCII code that represents a single, non-printing character. The delimiter-string must be enclosed in single quotes. For example, you specify: x09 to represent a tab as the terminator. x00 for a null terminator (no visible terminator as in C strings). x0a for a newline character as the terminator. You can also use the special character combination of n for newline. DATE or DATETIME string as ASCII characters. You must define the input-date-format or input-datetime-format of the string using one of the corresponding formats for the date and datetime data types supported by Sybase IQ. Use DATE for date values and DATETIME for datetime and time values. For information about these data types, see the Sybase IQ Reference Manual . The column-spec is for IQ tables only. If you specify a column-spec for a Catalog Store table, you get an error. The NULL portion of the column-spec indicates how to treat certain input values as NULL values when loading into the table column. These characters can include BLANKS, ZEROS, or any other list of literals you define. When you specify a NULL value or read a NULL value from the source file, the destination column must be able to contain NULLs. ZEROS are interpreted as follows: the cell is set to NULL if (and only if) the input data (before conversion, if ASCII) is all binary zeros (and not character zeros). If the input data is character zero, then: a) NULL(ZEROS) never causes the cell to be NULL b) NULL(0) causes the cell to be NULL If the input data is binary zero (all bits clear), then: a) NULL(ZEROS) causes the cell to be NULL b) NULL(0) never causes the cell to be NULL For example, if your LOAD statement includes col1 date(yymmdd) null(zeros) and the date is 000000, you will receive an error indicating that 000000 cannot be converted to a DATE(4). To get the load statement to insert a NULL value in col1 when the data is 000000, you must write the NULL clause as null(000000). or modify the data to equal binary zeros and use NULL(ZEROS). The FILLER clause indicates you want to skip over a specified field in the source input file. For example, there may be characters at the end of rows or even entire fields in the input files that you do not want to add to the table. As with the column-spec definition, FILLER allows you to specify ASCII fixed length of bytes, variable length characters delimited by a separator, and binary fields using PREFIX bytes. The maximum length of a variable-length FILLER column is 512 bytes. FILLER clause syntax is as follows: For more information on how to use data conversion options, see Converting data on insertion . Specifying files to load You specify one or more files from which to load data. In the FROM clause, you specify each filename-string . and separate multiple strings by commas. The files are read one at a time, and processed in a left-to-right order as specified in the FROM clause. Any SKIP or LIMIT value only applies in the beginning of the load, not for each file. If a load cannot complete, for example due to insufficient memory, the entire load transaction is rolled back. filename-string The filename-string is passed to the server as a string. The string is therefore subject to the same formatting requirements as other SQL strings. In particular: If a backslash () precedes the characters n. x. or it is considered an escape character. For this reason, to indicate directory paths in Windows systems, you must represent the backslash character by two backslashes if the next character is any of those listed. (It is always safe to double the backslashes.) Therefore, the statement to load data from the file c:newinput. dat into the employee table is: The pathname is relative to the database server, not to the client application. If you are running the statement on a database server on some other computer, the directory name refers to directories on the server machine, not on the client machine. The input file for the load must be on the server machine. Named pipes The file specification can be a named pipe. When you load from a named pipe (or FIFO) on Windows, the program writing to the pipe must close the pipe in a special way. The pipe writer must call FlushFileBuffers( ) and then DisconnectNamedPipe( ). (If you do not, Sybase IQ reports an exception from hosio::Read( ).) This issues a PIPENOTCONNECTED error, which notifies Sybase IQ that the pipe was shut down in an orderly manner rather than an uncontrolled disconnect. See Microsoft documentation for details on these calls. Specifying table-wide format options You can specify several options that describe the format of input data. FORMAT option You can specify a default format for table columns, which applies if you omit the column-spec . The same formats that can appear in the column-spec can appear here. If you also omit the FORMAT load option, the file is assumed to be binary. DELIMITED BY option If you omit a column delimiter in the column-spec definition, the default column delimiter character is a comma. You can specify an alternative column delimiter by providing a single ASCII character or the hexadecimal representation. In particular, to specify tab-delimited values use the hexadecimal ASCII code of the tab character (9), as follows: To use the newline character as a delimiter, you can specify either the special combination n or its ASCII value x0a. Although the delimiter-string in the column-spec may be a string of up to four characters, the DELIMITED BY option allows only a single ASCII character or its hexadecimal representation. STRIP option With STRIP turned on (the default), trailing blanks are stripped from values before they are inserted. This is effective only for VARCHAR data. To turn the STRIP option off, enter the clause as follows: Trailing blanks are stripped only for non-quoted strings. Quoted strings retain their trailing blanks. If you dont require blank sensitivity, you may use the FILLER option allows you to be more specific in the number of bytes to strip instead of just all the trailing spaces. This option does not apply to ASCII fixed-width inserts. For example, the STRIP option in the following statement is ignored: QUOTES option The QUOTES parameter is optional and the default is ON . With QUOTES turned on, LOAD TABLE expects input strings to be enclosed in quote characters. The quote character is either an apostrophe (single quote) or a quotation mark (double quote). The first such character encountered in a string is treated as the quote character for the string. String data must be terminated with a matching quote. With QUOTES ON . column or row delimiter characters can be included in the column value. Leading and ending quote characters are assumed not to be part of the value and are excluded from the loaded data value. With QUOTES OFF . Sybase IQ does not strip off apostrophes (single quotes) or quotation marks (double quotes). When it encounters these characters in your input file, it treats them as part of the data. With QUOTES OFF . you cannot include column delimiter characters in column values. QUOTES option example Consider a table defined as: with the following input data: The result of loading this data is displayed by running the following query: The following output displays the result of the query enclosed by lt and gt and the values of the LOAD TABLE options QUOTES and STRIP : Notes on the results: With QUOTES ON and STRIP ON . both leading space and trailing space for the non-enclosed field c2 row 1 are trimmed. With QUOTES ON and STRIP OFF . only the leading space for the non-enclosed field c2 row 1 is trimmed. With QUOTES OFF and STRIP ON . only the trailing space for the non-enclosed field c2 row 1 is trimmed. With QUOTES OFF and STRIP OFF . neither leading space nor trailing space for the non-enclosed field c2 row 1 is trimmed. With QUOTES ON and STRIP ON . both leading space and trailing space within quotes for the enclosed fields c2 and c3 row 3 are NOT trimmed. ESCAPES option Currently, you must specify ESCAPES OFF . The default of ESCAPES ON is provided for compatibility with Adaptive Server Anywhere this option may be supported in a future version. With ESCAPES turned on, if you omit a column-spec definition for an input field, characters following the backslash character are recognized and interpreted as special characters by the database server. Newline characters can be included as the combination n, and other characters can be included in data as hexadecimal ASCII codes, such as x09 for the tab character. A sequence of two backslash characters ( ) is interpreted as a single backslash. WORD SKIP option Allows the load to continue when it encounters data longer than the limit specified when the word index was created. For details, see LOAD TABLE statement, Chapter 6, SQL Statements, in the Sybase IQ Reference Manual. The following UNIX example specifies a BLOCK FACTOR of 50,000 records along with the PREVIEW option: Specifying load options You can specify a wide range of load options. These options tell Sybase IQ how to interpret and process the input file, and what to do when errors occur. You can specify load options in any order. Syntax for load-options is as follows: The syntax for the parameters is as follows: Each of these options is described briefly below. For details of all options of the LOAD TABLE statement, see the Sybase IQ Reference Manual . BLOCK FACTOR option Specifies blocking factor, or number of records per block, used when a source was created. This option is not valid for insertions from variable length input fields use the BLOCK SIZE option instead. However, it does affect all file inserts (including from disk) with fixed length input fields, and it can affect performance dramatically. The default setting for BLOCK FACTOR is 10,000. Higher block factors generally improve the speed of IO operations. However, consider the following when setting this option: If your source is a disk file, memory considerations will determine the best setting for your system. If your source is a tape, either use the same blocking factor that was used when creating the tape (for best performance) or a blocking factor that is evenly divisible into it. Sybase IQ rejects the insert operation if you specify a BLOCK FACTOR of zero. You cannot specify BLOCK FACTOR along with BLOCK SIZE or with any variable-width input fields. If you are loading very wide varchar data, reduce the BLOCK FACTOR to 10. ESCAPE CHARACTER option Specifies an alternative escape character. The default escape character for characters stored as hexadecimal codes and symbols is a backslash (), so that x0A is the linefeed character, for example. This can be changed using the ESCAPE CHARACTER clause. For example, to use the exclamation mark as the escape character, you would enter: Only one single-byte character can be used as an escape character. Because you must specify ESCAPES OFF in this version of Sybase IQ, the ESCAPE CHARACTER option has no effect. It is provided for compatibility with Adaptive Server Anywhere. WITH CHECKPOINT ON clause If this option is set to ON . a checkpoint is issued when the LOAD TABLE statement completes and is logged. In the event recovery is required, it is guaranteed even if the data file is then removed from the system. If WITH CHECKPOINT ON is not specified, the file used for loading must be retained in case recovery is required. BLOCK SIZE option Specifies the default size in bytes in which input should be read. This option only affects variable-length input data read from files it is not valid for fixed-length input fields. It is similar to BLOCK FACTOR . but there are no restrictions on the relationship of record size to block size. You cannot specify this option along with the BLOCK FACTOR option. The default setting for BLOCK SIZE is 500,000, which is high enough for input from disk files. For tape files, you should specify the same block size that was used when creating the tape. You cannot specify BLOCK SIZE along with BLOCK FACTOR or with any fixed width input fields. The following UNIX example specifies a BLOCK SIZE of 200,000 bytes: BYTE ORDER option Specifies the byte ordering during reads. This option applies to all binary input fields, including those defined as PREFIX 2 or PREFIX 4. If none are defined, this option is ignored. Sybase IQ always reads prefix binary data in the format native to the machine it is running on (default is NATIVE ). You can also specify: HIGH when multibyte quantities have the high order byte first (for big endian platforms like Sun, IBM AIX, and HP). LOW when multibyte quantities have the low order byte first (for little endian platforms like Windows). Here is a Windows example: LIMIT option Specifies the maximum number of rows to insert into the table. The default is 0 for no limit. The maximum is 2GB-1. LIMIT works together with the SKIP option. SKIP indicates where to begin reading from the input file, and LIMIT specifies how many of those rows to insert. SKIP takes precedence over LIMIT . If you specify multiple input files, these options only affect the first file . The following table shows how these options work together: Table 7-1: SKIP and LIMIT insert options If the SKIP value is Reads 10 rows and inserts 5 rows. If the input file has only 8 rows, then zero rows are inserted. In the following Windows example, no rows are skipped and up to 1,000,000 rows are inserted. NOTIFY option Specifies that you be notified with a message each time the specified number of rows is inserted successfully into the table. The default is every 100,000 rows. Very frequent notifications can slow down your insert operation. To turn off NOTIFY entirely, set NOTIFY 0. See Interpreting notification messages for an explanation of messages. ON FILE ERROR option Specifies the action Sybase IQ takes when an input file cannot be opened, either because it does not exist or because you have incorrect permissions to read the file. For all other reasons or errors, it aborts the entire insertion. You can specify one of the following: ROLLBACK aborts the entire transaction (the default). FINISH finishes the insertions already completed and ends the load operation. CONTINUE returns an error but only skips the file to continue the load operation. You cannot use this option with partial-width inserts. PREVIEW option Displays the layout of input into the destination table including starting position, name, and data type of each column. Sybase IQ displays this information at the start of the load process. If you are writing to a log file, this information is also included in the log. This option is especially useful with partial-width inserts. It can help you diagnose failed or skewed insertions due to incompatible data types, or destination column alignment that does not match source columns. Look at the expected column data type and starting position information to determine if you need to use an insert conversion option on a column andor where and how much filler to use. PREVIEW ON helps you determine if a load is correct. It does not stop the load from occurring. ROW DELIMITED BY option Specifies a string up to 4 bytes in length that indicates the end of an input record. You can use this option only if all fields within the row are any of the following: Delimited with column terminators Data defined by the DATE or DATETIME column-spec options ASCII fixed length fields The row delimiter can be any string of from 1 to 4 8-bit codes, including any combination of printable characters, andor any 8bit hexadecimal code that represents a non-printing character. For example, you specify x09 to represent a tab as the terminator. For a null terminator (no visible terminator as in C strings), you specify x00. To use the newline character as a row delimiter, you can specify either the special combination n or its ASCII value x0a. You cannot use this option if any input fields contain binary data. With this option, a row terminator causes any missing fields to be set to NULL. All rows must have the same row delimiters, and it must be distinct from all column delimiters. The row and field delimiter strings cannot be an initial subset of each other. For example, you cannot specify as a field delimiter and as the row delimiter, but you could specify as the field delimiter with that row delimiter. If a row is missing its delimiters, Sybase IQ returns an error and rolls back the entire load transaction. The only exception is the final record of a file where it rolls back that row and returns a warning message. On Windows, a row delimiter is usually indicated by the newline character followed by the carriage return character. You may need to specify this as the delimiter-string for either this option or FILLER. The following Windows example sets the column delimiter for the lorderkey column to tab, and the row delimiter to newline (x0a) followed by carriage return (x0d): SKIP option Lets you define a number of rows to skip at the beginning of the input file(s) for this load. The default is 0. This option works in conjunction with the LIMIT option, and takes precedence over it. In this UNIX example, Sybase IQ reads 9,000 rows from the input file, skips the first 5,000, and loads the next 4,000. If there are only 8,000 rows in the input file, then only 3,000 rows are loaded. START ROW ID option Specifies the id number of a row in the table where insertions should begin. This option is used for partial-width insertions . which insert into a subset of the columns in the table. If you are inserting data into an existing row, you must define the format of each input column with a column-spec . and use START ROW ID to identify the row where you want to insert it. The default is 0, which causes data to be inserted in a new row wherever there is space in the table. Be sure to read Partial-width insertions before using this option and performing partial-width inserts. UNLOAD FORMAT option Specifies that the data in the input file is in the format produced by the UNLOAD command in Sybase IQ 11.5.1, specifically for upgrading to Sybase IQ 12.x. This format places certain restrictions on other load options you specify: The format in the column specifications must be BINARY . the default. Specifying ASCII . PREFIX . FILLER . or string-delimiter causes an error. You must not use the load options DELIMITED BY and ROW DELIMITED BY . To allow NULLs in the data you must specify BINARY WITH NULL BYTE in the column specification. You cannot include NULL in the column-spec in any other way. For the sake of consistency with the data being loaded, you can specify BINARY WITH NULL BYTE even when loading into a table column that does not allow NULLs (as specified in CREATE TABLE or ALTER TABLE ). However, if you try to load any data into a column that does not allow NULLs, you receive an error. See the Sybase IQ Installation and Configuration Guide for more information on upgrading. ON PARTIAL INPUT ROW option Specifies the action to take when a partial input row is encountered during a load. You can specify one of the following: CONTINUE issues a warning and continues the load operation. This is the default. ROLLBACK aborts the entire load operation and reports the error IGNORE CONSTRAINT option Specifies whether to ignore UNIQUE, NULL, CHECK, DATA VALUE, andor FOREIGN KEY integrity constraint violations that occur during a load and the maximum number of violations to ignore before initiating a rollback. Specifying each constrainttype has the following result: UNIQUE limit If limit specifies zero, then the number of UNIQUE constraint violations to ignore is infinite. If limit is non-zero, then the limit 1 occurrence of a UNIQUE constraint violation causes the load to rollback. NULL limit If limit specifies zero, then the number of NULL constraint violations to ignore is infinite. If limit is non-zero, then the limit 1 occurrence of a NULL constraint violation causes the load to rollback. FOREIGN KEY limit If limit specifies zero, then the number of FOREIGN KEY constraint violations to ignore is infinite. If limit is non-zero, then the limit 1 occurrence of a FOREIGN KEY constraint violation causes the load to rollback. DATA VALUE limit If the database option CONVERSIONERROR ON, then an error is reported and the statement rolls back. If limit specifies zero, then the number of DATA VALUE constraint violations (data type conversion errors) to ignore is infinite. If limit is non-zero, then the limit 1 occurrence of a DATA VALUE constraint violation causes the load to rollback. ALL limit If the database option CONVERSIONERROR ON, then an error is reported and the statement rolls back. If limit specifies zero, then the cumulative total of all integrity constraint violations to ignore is infinite. If limit is non-zero, then load rolls back when the cumulative total of all ignored UNIQUE, NULL, DATA VALUE, and FOREIGN KEY integrity constraint violations exceeds the value of limit . For example, you specify the following IGNORE CONSTRAINT option: The total number of integrity constraint violations cannot exceed 200, while the total number of NULL and UNIQUE constraint violations cannot exceed 50 and 100, respectively. Whenever any of these limits is exceeded, the LOAD TABLE statement rolls back. A single row can have more than one integrity constraint violation. Every occurrence of an integrity constraint violation counts towards the limit of that type of violation. Sybase strongly recommends setting the IGNORE CONSTRAINT option limit to a non-zero value, if you are logging the ignored integrity constraint violations. Logging an excessive number of violations affects the performance of the load. CHECK limit If limit specifies zero, then the number of check constraint violations to ignore is infinite. If limit is non-zero, then the limit 1 occurrence of a CHECK constraint violation causes the load to roll back. A single row can have more than one integrity constraint violation. Every occurrence of an integrity constraint violation counts towards the limit of that type of violation. Sybase strongly recommends setting the IGNORE CONSTRAINT option limit to a non-zero value, if you are logging the ignored integrity constraint violations. Logging an excessive number of violations affects the performance of the load. If UNIQUE, NULL, CHECK, or FOREIGN KEY is not specified in the IGNORE CONSTRAINT clause, then the load rolls back on the first occurrence of each of these types of integrity constraint violation. If DATA VALUE is not specified in the IGNORE CONSTRAINT clause, then the load rolls back on the first occurrence of this type of integrity constraint violation, unless the database option CONVERSIONERROR OFF. If CONVERSIONERROR OFF, then a warning is reported for any DATA VALUE constraint violation and the load continues. When the load completes, an informational message regarding integrity constraint violations is logged in the. iqmsg file. This message contains the number of integrity constraint violations that occurred during the load and the number of rows that were skipped. MESSAGE LOG option Specifies the names of files in which to log information about integrity constraint violations and the types of violations to log. Timestamps indicating the start and completion of the load are logged in both the MESSAGE LOG and the ROW LOG files. Both MESSAGE LOG and ROW LOG must be specified, or no information about integrity violations is logged. If the ONLY LOG clause is not specified, then no information on integrity constraint violations is logged. Only the timestamps indicating the start and completion of the load are logged. Information is logged on all integrity constraint type violations specified in the ONLY LOG clause. If constraint violations are being logged, then every occurrence of an integrity constraint violation generates exactly one row of information in the MESSAGE LOG file. The number of rows (errors reported) in the MESSAGE LOG file can exceed the IGNORE CONSTRAINT option limit, because the load is performed by multiple threads running in parallel. More than one thread may report that the number of constraint violations has exceeded the specified limit. If constraint violations are being logged, then exactly one row of information is logged in the ROW LOG file for a given row, regardless of the number of integrity constraint violations that occur on that row. Note that the number of distinct errors in the MESSAGE LOG file may not exactly match the number of rows in the ROW LOG file. The difference in the number of rows is due to the parallel processing of the load described above for the MESSAGE LOG . The MESSAGE LOG and ROW LOG files cannot be raw partitions. If the MESSAGE LOG or ROW LOG file already exists, then new information is appended to the file. Specifying an invalid filename for the MESSAGE LOG or ROW LOG file generates an error. Specifying the same filename for the MESSAGE LOG and ROW LOG files generates an error. Various combinations of the IGNORE CONSTRAINT and MESSAGE LOG options result in different logging actions, as indicated in the following table: Nothing is logged. The first integrity constraint violation causes a rollback. Sybase strongly recommends setting the IGNORE CONSTRAINT option limit to a non-zero value, if you are logging the ignored integrity constraint violations. If a single row has more than one integrity constraint violation, a row for each violation is written to the MESSAGE LOG file. Logging an excessive number of violations affects the performance of the load. LOG DELIMITED BY option Specifies the separator between data values in the ROW LOG file. The default separator is a comma. For more details on the contents and format of the MESSAGE LOG and ROW LOG files, see Logging integrity constraint violations . LOAD TABLE adds rows The LOAD TABLE statement appends the contents of the file to the existing rows of the table it does not replace the existing rows in the table, unless you specify the START ROW ID load option. See Partial-width insertions for examples of how you use this option to insert data into existing rows. If you want to empty out an existing table and reload it, you can use the TRUNCATE TABLE statement to remove all the rows from a table. Simple LOAD TABLE example The following statement loads the data from the file dept. txt into all columns of the department table. This example assumes that no explicit data conversion is needed, and that the width of input columns matches the width of columns in the department table. Copyright 2006. Sybase Inc. All rights reserved.

No comments:

Post a Comment