Announcement

Collapse
No announcement yet.

Oracle 10g XE: CharacterSet auf UTF-8 setzen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Oracle 10g XE: CharacterSet auf UTF-8 setzen?

    Hallo,

    meine DB hat CharacterSet "WE8MSWIN1252". Bei Setzen des character set auf UTF-8 kommt nachfolgender Fehler.

    alter database character set UTF8;
    -> ORA-12712: Der neue Zeichensatz muss eine Obermenge des alten Zeichensatzes sein

    select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
    -> WE8MSWIN1252

    Ich habe Oracle 10g XE Western Edition (10g Release 2 (10.2.0.1)) installiert.

    Wer kann mir helfen?

    Danke.

    Reinhold P.

  • #2
    Unsere Erfahrung sind das das nur per installation einer neuen Instanz geht.

    Comment


    • #3
      Oracle 10g XE: CharacterSet auf UTF-8 setzen?

      Hallo Bernhard Geyer,

      bei der Installation von Oracle 10g XE können keine Parameter, z.B. Character Set angegeben werden.

      Die Datenbank ist neu angelegt und vollkommen leer, d.h. es sind Tabellen, Views,... vorhanden.

      Reinhold P.

      Comment


      • #4
        Hi,

        du musst dir die Universal Version installieren. Dort ist der Zeichensatz auf UTF8 gesetzt.
        Bei der XE Version ist das fest gesetzt.

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          CharcterSet auf UTF-8 setzen?

          Hallo,

          danke für die Info. Ich werde die Universal Version installieren.

          Weitere Frage:
          Wie kann ich eine leere Datenbank (bei Nicht XE) auf UTF-8 umstellen?

          Reinhold P.

          Comment


          • #6
            Garnicht. Du musst bei der Installation angeben welchen Zeichensatz Du verwenden möchtest.
            Du kannst es auch so machen, dass Du als Database Characterset den normalen 1 Byte Satz verwendest und als National Characterset UTF-8 angiebst.

            Das hat den Vorteil, dass Du je nach Verwendungszweck VARCHAR2/CHAR oder NVARCHAR2/NCHAR verwenden kannst. Wobei ersteres pro Zeichen dann 1 Byte belegt und letzteres den UTF-8 Zeichensatz abdeckt.

            Damit kannst ggf. einiges an Speicherplatz sparen.

            Bedenke auch, dass die maximale Länge für ein Stringfeld 4000 byte ist. Mit einem UTF-8 Zeichensatz kannst also im schlimmsten Fall nur 2000 Zeichen in einer Spalte ablegen (wobei Oracle auch bei UTF-8 nur 2 Byte belegt, wenn das Zeichen auch wirklich 2 Byte benötigt, ansonsten wird nur 1 Byte verwendet).

            Dim
            Zitat Tom Kyte:
            I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

            Comment


            • #7
              mit welchem Befehl kann ich feststellen, ob meine Datenbank auch mit diesem UTF-8 installiert wurde?

              Comment


              • #8
                Code:
                select * from NLS_DATABASE_PARAMETERS where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
                Dim
                Zitat Tom Kyte:
                I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                Comment

                Working...
                X