Aspekte zur Character Semantik

Relevanta dokument
Metallmaßstäbe RL. Inhaltsverzeichnis

Mycket formellt, mottagaren har en speciell titel som ska användas i stället för namnet

WiLlk. VÄLKo. WiLlkommen. VÄLkOMMEN

Grammatikübungsbuch Schwedisch

Logik für Informatiker

Nachrichten auf Deutsch 09. April 2011

PPV-Serie. DIN Axialkolben Verstellpumpe für LKW Nebenabtrieb mit Load Sensing-Regler. Erstinbetriebnahme: Saugstutzen muß separat bestellt werden

TAXUD/801/2004 DE Nachtrag Nr.: 2 Datum: Das Handbuch Versandverfahren wird wie folgt geändert:

SERVICEINSTRUKTION Tider. SERVICE INSTRUCTION Times. Zeiten SIT SE/GB/DE M10401 FIGHTER 2005/2010

Bewerbung Anschreiben

Hallo und herzlich willkommen zu Unsere Hitliste! Ich bin Niklas, und hier sind meine vier Freunde...

In Ringen und Werffen können nachvolgende \ück nützlich gebraucht werden, deren seindt achtzehen

TYSKA, KORT LÄROKURS, skriftlig del

ARBETSBLAD KORTFILMSKLUBBEN TYSKA. Durch die Blumen (lätt) Ordkunskap Välj ut 10 av orden/fraserna nedan och sätt ihop en dialog på tyska!

Nachrichten auf Deutsch

Nachrichten auf Deutsch

TYSKA. Unsere Hitliste. Musik & Co. Diese Arbeitsblätter gibt es:

Leroy. Teil 1. A R B E T S B L A D PROGRAMNR / tv1

301 Tage, Deutschland

ARBETSBLAD. KORTFILMSKLUBBEN TYSKA Bamboule

Nachrichten auf Deutsch 12. März 2011

Buske Sprachkalender SCHWEDISCH 2016

SchwedenQuiz. Quiz & Spiele. Diese Arbeitsblätter gibt es: 1. Vokabeln zur Sendung 2. Was weißt du über Schweden? (frågeformulär) 3.

4.2 Konstantes Fördervolumen Doppelpume

BÄTTRE ÄN NÅGONSIN. Bäste medarbetare

TYSKA. Mango, das Zebra. Baby-Tiere. Diese Arbeitsblätter gibt es: 1. Vokabeln zur Sendung 2. Aufgaben zur Sendung 3. Lösungen ARBETSBLAD 2007/08

Kan jag ta ut pengar i [land] utan att behöva betala extra avgifter? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

2. Setz die passende Verbform ein! (2 Punkte pro richtige Form!) / 16

Akademiker Öppning. Öppning - Introduktion. I denna uppsats kommer jag att undersöka/utreda/utvärdera/analysera...

Jurtor-by på JUVENGÅRD

Veranda. DE Installationshandbuch V17/16

Präpositionen. efter. från. von: beim Passiv zur Angabe des Urhebers Tavlan är målad av en svensk konstnär.

Deutsch lernen und lehren I, 3 högskolepoäng

Optioner Options Optionen

TYSKA. Türkisch für Anfänger. Teil 5. Diese Arbeitsblätter gibt es:

PROPOSITIONENS HUVUDSAKLIGA INNEHÅLL

SERVICEINSTRUKTION Värmeproduktion. SERVICE INSTRUCTION Heat production. Wärmeerzeugung SIT SE/GB/DE M10383 FIGHTER 1320

Türkisch für Anfänger

Mr. Adam Smith Smith Plastics 8 Crossfield Road Selly Oak Birmingham West Midlands B29 1WQ

Mr. Adam Smith Smith's Plastics 8 Crossfield Road Selly Oak Birmingham West Midlands B29 1WQ

Im Tolch allein können im Fechten nachvolgende Stücke nützlich gebraucht werden, deren seindt 16.

Tala: die Schule und der Stundenplan. Skriva: kennen lernen (träna perfekt) Drama: Levon lernt Svetlana kennen

Türkisch für Anfänger

Mein Berlin Levon Mitt Berlin Levon

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Tariff Kit. Installatörshandbok Tariff Kit för NIBE F1330 LEK. Installer manual Tariff Kit for NIBE F1330

Lagrådsremiss. Skatteavtal mellan Sverige och Österrike. Lagrådsremissens huvudsakliga innehåll. Regeringen överlämnar denna remiss till Lagrådet.

Immigration Bostad. Bostad - Hyra. Ange att du vill hyra någonting. ein Zimmer Typ av bostad. eine Wohnung/ ein Apartment Typ av bostad.

Lektion. 1Hej! Vad heter du? Sprachkurs Schwedisch, Buch 2012 Hueber Verlag, Ismaning, ISBN

PROJEKT LERNRAUM CAMPUS DIPL. ING KATJA NINNEMANN, ARCHITEKTIN DWB

Fortbildningsaktiviteter april i samband med SFÖ:s konferens i Lund

Ja, es ist ein Platz, wo oft Veranstaltungen sind, das heißt, man kann sich hier mit Freunden treffen...

Sveriges överenskommelser med främmande makter

Bewerbung Anschreiben

Bewerbung Anschreiben

F1220, F1230, F1120, F1130

Der Märklin Store München bietet Ihnen Schätze mit Geschichte.

Der Märklin Store München bietet Ihnen Schätze mit Geschichte.

Reisen Unterwegs. Unterwegs - Ort. Jag har gått vilse. Du weißt nicht, wo Du bist

Nachrichten auf Deutsch

IZZI. design ruud ekstrand

Var kan jag hitta formuläret för? Var kan jag hitta formuläret för? Fragen wo man ein Formular findet

Lisa Dobrosch Exposé für die Magisterarbeit:

Ich bin der Jens ich bin der Jens Jansen ich bin hier der Vater der Familie von Mette, Gesa, Helge, Sonja und jetzt auch von Sofi.

Eine haarige Verwandlung

Der Märklin Store München bietet Ihnen Schätze mit Geschichte.

Antrag auf Behandlung als unbeschränkt einkommensteuer-

Rajd Instruction. Svenska Deutsch English

Studieanvisning för Att kommunicera på tyska. Kurskod: 715G26. Hp: 7,5. Ht 2017

TYSKA, KORT LÄROKURS

Deutsche Grammatik, Achte Klasse

4 Fritid. 1 De tycker om att gå på restaurang. a Skriv under bilderna! Schreiben Sie unter die Bilder: Was machen die Personen?

Der Märklin Store München bietet Ihnen Schätze mit Geschichte.

Türkisch für Anfänger

301 Tage, Deutschland

CTC Rumsdisplay CTC Roomdisplay Installations- och skötselanvisning. Installation and maintenance instructions

Einstufungstest Välkomna! Aufgabenblätter

Prävention alkoholbedingter Jugendgewalt (PAJ) Radioprojekt Webgeflüster

TYSKA. Türkisch für Anfänger. Teil 3. Diese Arbeitsblätter gibt es:

Om översattandets konst

#1230 RÖKLÅDA SMOKING OVEN RÄUCHEROFEN.

4. Dialogövning Läroplanen säger: Olika former av samtal, dialoger och intervjuer.

WALLMEK i Kungälv AB Special tools for auto repairs

HANDPUMP H-11 DIRECTIONS FOR USE BRUKSANVISNING GEBRAUCHANWEISUNG

Der Märklin Store München bietet Ihnen Schätze mit Geschichte.

Compact Hi-Fi Stereo System

Kulturminnesvårdens perifera organisation Bergstrand, Axel Fornvännen 1939(34), s

Välkomna! Einstufungstest. Aufgabenblätter

Türkisch für Anfänger

Ansökan Följebrev. Följebrev - Inledning. Formellt, manlig mottagare, namnet okänt. Formellt, kvinnlig mottagare, namnet okänt

Deutsche Hits. Diese Arbeitsblätter gibt es:

K j on unkti ktioner

WALLMEK i Kungälv AB Special tools for auto repairs

Förenklat handhavande Simplified operation Vereinfachte Betriebsanleitung LUW

Schweiz kvinnlig rösträtt

Deckblatt. Bedienberechtigungen in SIMATIC PCS 7 OS V7.1 SIMATIC PCS 7 V7.1. FAQ Mai Service & Support. Answers for industry.

TY 7. Skriv läxan här: 2 Svaga/Starka verb i presens. 3 Auf der Post. 4 Ackusativobjekt /möchten/verb i presens 5-6 Am Kiosk. 7 PROV! Am Donnerstag!

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

0/22. Proseminar Programmiersysteme WS 2003/04. Typklassen: Haskell. Mark Kaminski. Betreuer: Andreas Rossberg. 1. April 2004

Musik für jede Laune. Sag s mir!

Transkript:

Aspekte zur Character Semantik Tilo Henke Senior Berater Oracle Berlin DOAG Regionaltreffen Berlin Brandenburg 10.12.2003

Motivation Web Clients 5. Response 1. Request LDAP OID + Portal Repository WE8ISO8859P1 4. DB Zugriff via DB Link 2. SSO + 3. Run Portlets 9iAS Portal UTF-8

Motivation E-Mail Zeichensatz Hinweis: Diese Nachricht wurde Ihnen im Unicode-Format (UTF-8) uebermittelt. Sollten bestimmte Zeichen nicht korrekt dargestellt werden, so finden Sie Einstell- bzw. Update-Moeglichkeiten Ihres Mail-Readers unter http://www.unicode.org/unicode/standard/translations/german.html. Auf Wunsch senden wir Ihnen diese Mail auch gerne im "Western"-Format erneut zu. "Unicode gibt jedem Zeichen seine eigene Nummer - platformunabhängig, programmunabhängig, sprachunabhängig" Oracle Magazine otn.oracle.com/oramag March/April 2003

Byte oder Character Ist 'x' ein Byte oder ein Character egal in Single-Byte CharSet Umgebungen nicht egal in Multi-Byte CharSet Umgebungen Byte - Speichereinheit Character - Symbol einer Sprache declare y varchar2(3); begin y := 'äöü'; -- ORA-06502 value error in UTF-8 end; /

Byte- oder Character Semantik Strings fester Länge erscheinen variabel Ursache: Vermengung von Byte- und Character Semantik -- Ergebnis in UTF-8 (WE8ISO8859P1) declare x char(3); -- Deklaration im Sinne von Bytes begin -- Zugriff im Sinne von Character x := 'a'; dbms_output.put_line(length(x)); -- Ergebnis 3 (3) x := 'ä'; dbms_output.put_line(length(x)); -- Ergebnis 2 (3) end; / Konfusion ab 9i beendet VARCHAR2(3 BYTE) -- Byte Semantik VARCHAR2(3 CHAR) -- Char Semantik (UTF-8 z.b. allokiert 9 Byte)

Byte- und Character Semantik SQL> declare 2 x char(9 BYTE); 3 begin 4 x := 'aaaaaaaaa'; 5 dbms_output.put_line(length(x)); -- Ergebnis 9 (9) 6 x := 'ääää'; 7 dbms_output.put_line(length(x)); -- Ergebnis 5 (9) 8 end; 9 / SQL> declare 2 x char(3 CHAR); 3 begin 4 x := 'aaa'; 5 dbms_output.put_line(length(x)); -- Ergebnis 3 (3) 6 x := 'äää'; 7 dbms_output.put_line(length(x)); -- Ergebnis 3 (3) 8 end; 9 /

Character Semantik Wir denken in CHAR: - beim Deklarieren von Strings - bei der Berechnung der Länge - bei der Suche, bei Teilstrings, Stringdeklarationen (Tabellen, PL/SQL - Variablen, embedded SQL - Variablen) in Char Semantik erhöhen die Portabilität der Applikation bzw. des DB - Schemas zwischen den CharSet Welten CHAR(3 CHAR) VARCHAR2(8 CHAR)

L ngen Semantik SQL> declare 2 x char(3); 3 begin 4 x := 'äa'; 5 dbms_output.put_line(instr(x,'a')); -- Ergebnis 2 (2) 6 dbms_output.put_line(length(x)); -- Ergebnis 2 (3) 7 dbms_output.put_line(substr(x,1,1)); -- Ergebnis ä (ä) 8 end; 9 / SQL> declare 2 x char(3); 3 begin 4 x := 'äa'; 5 dbms_output.put_line(instrb(x,'a')); -- Ergebnis 3 (2) 6 dbms_output.put_line(lengthb(x)); -- Ergebnis 3 (3) 7 dbms_output.put_line(substrb(x,3,1)); -- Ergebnis a ( ) 7 dbms_output.put_line(substrb(x,1,2)); -- Ergebnis ä (äa) 8 end; 9 /

Migration / Portierung VARCHAR(n) > VARCHAR(3n) ist genauso trostlos wie VARCHAR(n) > VARCHAR(n CHAR) NLS_LENGTH_SEMANTICS = CHAR/BYTE auf Instanz- oder Sessionebene (sho parameters nls, NLS_INSTANCE_PARAMETERS) Export / Import CHAR(3) wird nun interpretiert als CHAR(3 CHAR) auch für PL/SQL - Code, aber: externes SQL beachten und überhaupt: Sorgfalt

Migration / Portierung Parameter gilt nur für neu erstellte Objekte und wirkt nicht dynamisch SQL> alter session set NLS_LENGTH_SEMANTICS=byte; SQL> create table T_Byte(a varchar2(8)); SQL> alter session set NLS_LENGTH_SEMANTICS=char; SQL> create table T_Char (a varchar2(8)); SQL> desc t_byte A VARCHAR2(8 BYTE) SQL> desc t_char A VARCHAR2(8) SQL> alter session set NLS_LENGTH_SEMANTICS=byte; SQL> desc t_byte A VARCHAR2(8) SQL> desc t_char A VARCHAR2(8 CHAR)

Q U E S T I O N S A N S W E R S