Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tedi

User
  • Registriert

  • Letzter Besuch

Beiträge Beiträge von Tedi

  1. Sorry @Whiz-zarD

    Hier ein Stück Code

    Bestellung Nummer;

    Vorrat Number;

    Best_nr Number;

    Op varchar2 (1);

    If op = '-'

    Then

    Select menge into Bestellung from mytab where best_nr = nr;

    If Bestellung < Vorrat then 

    Err := 'nicht genug ware im lager';

    Return (false);

    End if;

    End if ;

     

     

     

  2. Veröffentlicht

    Hallo,

    ich versuche wie folgt eine stored function in sqldev auszuführen, jedoch ohne Erfolg

    SET serveroutput on;
    
    declare
    r boolean
    r:= meine_fct(1212212,
                                        to_date('30.06.2022', 'dd.mm.yyyy'),
                                            'X',
                                            to_date('01.11.2018', 'dd.mm.yyyy'),
                                                 to_date('31.03.2023','dd.mm.yyyy'),
                                                 19,
                                                 'Y', 
                                               Outparam1,-- IN OUT Parameter
                                                 Outparam2,-- IN OUT Parameter
                                                 1,
                                                to_date('28.02.2023', 'dd.mm.yyyy'));
    
    dbms_output.enable;
      dbms_output.put_line(Outparam1);
      dbms_output.put_line(Outparam2);
    
    END; 
                                                

    leider erhalte ich für die Funktion keine Ausgabe. Das Einzige, was sqldev mir ausspuckt ist: PL/SQL-Prozedur erfolgreich abgeschlossen. 

    Ich hätte jedoch gerne eine Ausgabe gehabt um zu wissen ob die Funktion richtig berechnet.

    Die DBMS-Ausgabe ist an.

    Ich bedanke mich für jede Hilfe

  3. Veröffentlicht

    Hallo an Alle

    Ich hätte gern ein Tipp um besser zu selektieren.

    Ich habe die folgende Tabelle

     correspondance
    
    Article | Dept
    A1 | 123
    A1 | 456
    A1 | 987
    A2 |456
    B1 | 123
    B1 | 987
    C3| 123

     

    Ich möchte alle Artikel aus dept 123 ohne die aus dept 456 

    select * from correspondance where dept =  '123' and  dept !=  '456';

    ich dachte ich würde sowas bekommen
     

    Article | Dept
    
    B1 | 123
    C3 | 123

    stattdessen habe ich folgendes 
     

    Article | Dept
    A1 | 123
    B1 | 123
    C3| 123

    Den Select habe ich auch probiert ohne Erfolgt

    select * from correspondance where dept =  '123'  and article in(
    select article from correspondance where dept =  '123' or dept =  '456');

    Danke für eure Hilfe

  4. Veröffentlicht

    Hallo,

    Ich habe eine Kopie einer Tabelle von  meiner haupdb auf einer testdB erstellt

    create table TheCopy as (select * from MySource@hauptdb)

    Nun tue ich folgendes

    truncate table TheCopy
    insert into TheCopy select * from MySource@hauptdb

    Ich bekomme den Fehler

    ORA-00932:Inkonsistente Datentypen: NUMBER erwartet,DATE erhalten

    Was ich gar nicht verstehe, weil die Tabellen von der Struktur genau gleich sind.

     

    Ich bin für jede Hilfe oder Tipp dankbar. 

     

  5. Veröffentlicht

    Liebe Informatiker,

    Ich brauche euch bitte. Meine Funktion wirft mir über die Applikation folgende Fehler vor:

    Ora-06502: PL/SQL: numerischer oder Wertefehler: Zeichenfolgenpuffer zu klein.

    Wie kann ich die Funktion am sinnvollsten Debuggen um den Fehler zu lokalisieren.  Ich habe versucht einige Variable und DB-Felder zu vergrößern.  Leider ohne Erfolg. 

    Danke

     

  6. Veröffentlicht

    Hallo Zusammen!  Ich brauche bitte eure Hilfe. 

    Ich habe die  folgende Funktion

    
    create or replace function mafct(error out varchar2, mois_cmpt in varchar2, cercle in varchar2, typ in varchar2)
    RETURN BOOLEAN IS
     
    ptr number;
     
    BEGIN
    if typ  != 'M' or 
       typ  != 'E'
       then 
       Dbms_Output.Put_Line(typ );
     
    ptr:=ptr+1;
    insert into protocol values(' typ falsch '||typ ||' Bitte  M ou E eingeben',null,null,null,ptr);
    error:='typ falsch '||typ ||' bitte MBitte eingeben';
    commit;
       Dbms_Output.Put_Line(typ);
     
          return (FALSE);
    end if;
     
    return true
    END;

     Wenn ich die Funktion zum Testen aufrufe

    declare X boolean;
    error varchar2(255);
    begin
    X:=  mafct (error , '01.2025', 'AZ', 'E');
    end;

    Ich habe in meine Protokoll Tabelle einen Fehler, dass der Typ falsch wäre.

    Warum funktioniert den einfachen Vergleich nicht?

    Danke

     

  7. Hallo Whiz-zarD, erstmal danke für deine Antwort.  Du hast recht, meine Text War nicht so klar. Entschuldigung. 

    Die DB habe ich so übernommen und muss erstmal damit arbeiten. Zu dem  Insert into select bin ich schon son selber drauf gekommen wo ich einen Denkfehler habe ist wenn ich die richtigen Zeile auswählen muss und die anderen, die nicht aktualisiert werden müssen ausschließen. 

  8. Veröffentlicht

    Hallo ihr Lieben, 

    Ich habe (vielleicht eine doffe Frage ?) aber ich komme einfach nicht auf die Idee.

    Ich habe eine Tabelle mit 4 Spalten (darunter eine seq). 

    username|spezialitaet|id |doc_seq
    doc1    |Chirurg     |doc1_id| 1
    doc2    |Kardiologue |doc2_id| 2
    doc2    |Chirurg     |doc2_id| 3
    doc3    |internist   |doc3_id| 4
    doc4    |Chirurg     |doc4_id| 5

    Ich möchte alle doc, die Chirurg eine neue Zeile " Kardiologue" 

    verpassen sofern sie die Zeile noch nicht haben so wie doc_2.

    Die Spalte "doc_seq" ist eine ganz normale Sequenz. 

    Danke vielmals für eure Hilfe. 

  9. Lieber Whiz-zarD Danke!! 

    Ich habe inzwischen die meine ErgebnisMenge bekommen können.  

    Zum Einfügen habe ich mir eine Funktion geschrieben,  die leider noch nicht so tut was sie soll.

    ***** Korrektur:  ich hatte vorhin die Spalte in beiden Tabellen die Spalte seq vergessen. Daher nochmal die TabellenStruktur. ****

    create or replace function comp (p_error OUT VARCHAR2)
    RETURN BOOLEAN
    is
     
    cursor compa_cur is
     
    select * from compag_orcl1@orcl1 c1
     
    where c1.compag like 'C%'
       and not exists (select 1
                         from compag_orcl2 c2
                        where c1.username  = c2.username 
                          and c1.id   = c2.id
                          and c1.compag = c2.compag);
     
    compa_tmp compa_cur%ROWTYPE;
     
    begin
     
    open compa_cur ;
     
    loop
     
    fetch compa_cur into compa_tmp;
     exit when compa_cur%NOTFOUND;
     
    insert into compag_orcl2 (USERNAME, 
                         compag,  
                         id, 
                         Seq)
     
    values (compa_cur.username,
            compa_cur.compag,
             compa_cur.id,
            Seq_cmp.nextval);
        commit; 
     
       end loop;
     
            close compa_cur;
       return true; 
    end comp;
    compag_orcl1
     
    username | id | compag| seq
    --------------------------------------
    USER1     |us1id1| CMR| 123
    USER1     |us1id1| RWD| 456
    USER1     |us1id1| SING| 789
    USER1     |us1id1| CNG | 1011
    ------------------------------------
    USER2     |us2id2| SEN | 1213
    USER2     |us2id2| CND | 1415
    USER2     |us2id2| CGT | 1617
    USER2     |us2id2| CNG | 1819
    USER2     |us2id2| KPG | 2021
    ------------------------------------
    USER3     |us3id3| RWD| 2223
    USER3     |us3id3| CND | 2425
    USER3     |us3id3| CID  | 2627
    USER3     |us3id3| CNG | 2829
    USER3     |us3id3| SING| 3031

    und die Kopie auf orcl2

     

    compag_orcl2
    username | id | compag |seq
    -------------------------------------
    USER1     |us1id1| RWD|0010
    USER1     |us1id1| SING|0011
    USER1     |us1id1| CNG |0012
    ------------------------------------
    USER2     |us2id2| SEN|0013
    USER2     |us2id2| CNG|0014
    USER2     |us2id2| KPG|0015
    -----------------------------------
    USER3     |us3id3| RWD|0016
    USER3     |us3id3| CND|0017
    USER3     |us3id3| SING|0018
  10. vor 6 Minuten schrieb Whiz-zarD:

    Was meinst du mit "aggregierte Spalte"?
    Einzelne Spalten aggregieren kannst du nicht. Mir ist auch nicht klar, was du mit dem Decode() erreichen möchtest. Für mich sieht auch die Syntax komplett falsch aus.

    Die Spalte 'Sokat'. Ich multipliziere 'Einzahlung' mit decode ( plm. . ) danach trage ich die Summe in sokat 

  11. vor 11 Minuten schrieb Whiz-zarD:

     

    Wenn du Oracle verwendest, kannst du die extract()-Funktion benutzen, um das Jahr aus einem Datum zu extrahieren.
    https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm

    Dann lautet die Where-Klausel:

    
    WHERE EXTRACT(YEAR FROM ZEIT) = 2018

    Wie ich schon sagte, deine Where-Klausel ist nicht korrekt, wenn sie über das gesamte Jahr gesehen soll.

    Hast du überhaupt schon mal die Datensätze angeschaut, ob du überhaupt Datensätze vom 01.01.2018 bis 01.12.2018 hast?

    Danke. 

    Ich habe die Abfrage mit EXTRACT gemacht.  Die aggregierte Spalte ist immer noch null.

    Ja ich habe mir die DS. vom Jahr 2018 angeschaut.  Und die gibt es 

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.