Announcement

Collapse
No announcement yet.

Select auf Longfeld

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

  • Select auf Longfeld

    Hallo
    hoffe mir kann jemand helfen. Ich benötige ein SQL mit dem ich überprüfen kann ob eine bestimmte Zeichenkette innerhalb eines long feldes vorkommt.

    normalerweise wurde ich einfach schreiben
    select * from tabelle where spalte like '%35%';

    Die Spalte ist aber als Longfeld deklariert und deswegen geht die Abfrage nicht. Wie muß ich dann meine Abfrage formulieren???

    schonmal Danke und Gruß
    Anke

  • #2
    Du musst das Feld beim Vergleich konvertieren. Je nach DBMS über CAST() oder CONVERT().<BR>

    Bei ADS wäre dies:
    <PRE>
    SELECT * FROM tabelle WHERE CONVERT( spalte, SQL_CHAR) LIKE '%35%';
    </PRE&gt

    Comment


    • #3
      Hallo Joachim

      funktioniert bei mir nicht. Das "SQL_CHAR" ist ihm unbekannt.
      Muß ich bei Oracle etwas anderes statt SQL_CHAR eintragen? Oder hat sonst vielleicht noch jemand eine Idee??

      Gruß Ank

      Comment


      • #4
        Bei Oracle müße es dafür eine Funktion TO_CHAR geben. Ich habe kein Oracle da und kennem ich mit Orakel's SQL auch nicht aus. Aber folgendes sollte gehen:
        <PRE>
        SELECT * FROM tabelle WHERE TO_CHAR(spalte) LIKE '%35%';
        </PRE>
        Aber sagt mal: Habt Ihr Oracle ohne Handbuch gekauft? Dort steht doch sicherlich etwas über Konvertierung drin

        Comment


        • #5
          TO_CHAR funktioniert nur wenn ich ein Datumsfeld oder ein Zahl in eine String umwandeln will.
          Hab Handbücher genug und auch schon wie wild gesucht. Das Problem ist das ich nichts über ein Longfeld finde. Aber weiß das man Longfelder anderst behandeln muß wie zum Beispiel VARCHAR2

          Comment


          • #6
            Sorry, dass ich so dumm Frage: ist bei Oracle long nicht LONG INTEGER, also eine Zahl

            Comment


            • #7
              Nee, Long ist ein Textfeld das 2GB Informationen aufnehmen kann

              Comment


              • #8
                Sorry, dann muss ich passen

                Comment


                • #9
                  Trotzdem Dank

                  Comment


                  • #10
                    Wenn Du mit Oracle arbeitest, würde ich mal nach den INSTR() Befehl schauen.
                    Äquivalent beim SQL Server ist CHARINDEX() oder PATINDEX().

                    Beide Varianten liefern die Stelle zurück, an der das Zeichen (die Zeichenfolge) zuerst gefunden wurde. Ansonsten 0

                    Comment

                    Working...
                    X