Announcement

Collapse
No announcement yet.

pl/sql zum partitionen definieren

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

  • pl/sql zum partitionen definieren

    wenn ich diesen PL/SQl skript ausführe bekomme ich eine Fehlermeldung:


    Code:
    declare 
       v_date date;
       v_part varchar2(20);
       
       CURSOR context_date_cur IS
       Select distinct ext_frontend.context_date
       from ext_frontend;
       
    
    begin
      -- Test statements here
      IF NOT context_date_cur%ISOPEN
      THEN
      OPEN context_date_cur;
      END IF;
      
      LOOP
      
      FETCH context_date_cur into v_date;
      exit when context_date_cur%NOTFOUND;
      v_part :='part_'||(to_char(v_date));
      alter table LOG_ANALYSE.FRONTEND_TAB
      add partition v_part
      values less than 1+to_date(v_date, 'dd.mm.yyyy')
      
      
      end loop;
      
    end;
    ich möchte das partitionen anlegen, in dem ich zuerst schaue in die Spalte context_date, und aus diesem wert meine partitionen definiere.

    vielen dank

  • #2
    Welche Fehlermeldung den genau!!!
    Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

    Comment


    • #3
      danke für den tipp ?

      Comment


      • #4
        Wenn ich helfen soll, dann benötige ich schon die genaue Fehlermeldung!!! ORA-0xxxx
        Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

        Comment


        • #5
          Originally posted by DiddlMouse View Post
          Wenn ich helfen soll, dann benötige ich schon die genaue Fehlermeldung!!! ORA-0xxxx
          problem gefunden !
          aber habe ein anderes.

          Code:
          FETCH context_date_cur into v_date;
          DBMS_OUTPUT.put_line(v_date);
          v_date ist vom typ date, und da cursor context_date_cur into liefert mir ein datum in diesem format dd.mm.yyyy aber wieso wenn ich v_date ausgeben bekomme ich diesen Format: dd.mm.yy
          danke

          Comment


          • #6
            Originally posted by MR-SANSIBAR View Post
            problem gefunden !
            aber habe ein anderes.

            Code:
            FETCH context_date_cur into v_date;
            DBMS_OUTPUT.put_line(v_date);
            v_date ist vom typ date, und da cursor context_date_cur into liefert mir ein datum in diesem format dd.mm.yyyy aber wieso wenn ich v_date ausgeben bekomme ich diesen Format: dd.mm.yy
            danke
            Hat nur was mit der Ausgabe zu tun.
            Versuch mal: DBMS_OUTPUT.put_line(to_char(v_date, ‘dd.mm.yyyy hh24:mi:ss’));
            Beschreibung gibt es auch hier: http://entwickler-forum.de/showthread.php?t=43696
            Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

            Comment


            • #7
              vielen dank

              Comment


              • #8
                ist es möglich alle partionen voneiner atbelle auf einen schlag zu löschen ?
                wen ja wie.
                ich muss alle einzel durch gehen und löschen ?

                Comment


                • #9
                  Du musst dich nur nocht um den ORA-14083 kümmern

                  ORA-14083: cannot droptheonlypartitionof a partitioned table
                  Cause: A droppartition command is being executed when there isonly one partitioninthetable
                  Action: Ensure that there isat least one partition. Droptableto remove allpartitions

                  Code:
                   
                  create procedure DropTabPartitions(
                    pTableName varchar2) is
                  begin
                    for rcTabPartitions in (select 'alter table '||table_name||
                                                   ' drop partition '||partition_name DropPart
                                              from USER_TAB_PARTITIONS
                                             where table_name = pTableName) loop
                      execute immediate rcTabPartitions.DropPart;
                    end loop;
                  end;
                  /
                   
                   
                  begin
                    DropTabPartitions('BESTELLUNG');
                  end;
                  /
                  Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

                  Comment


                  • #10
                    vielen dank.
                    ist es auch möglich eine aktuelles datum - 7 tage und diese partition löschen ?

                    Comment


                    • #11
                      Sicher! Wenn deine Partition einen Namen hat, dem man mit einer Regel bestimmen kann.
                      Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

                      Comment

                      Working...
                      X