none
Powershell - Arrayvergleich gibt komischen Wert RRS feed

  • Frage

  • Hallo!

    Ich habe folgenden Code

    #Empty Table 
    $sql = "delete from table_a;
            commit;   "
    
    $sql | sqlplus user/$userpw@$DB
    
    #Prüfung ob wirklich gelöscht
    $sql = "select count(*) from table_a;"
    $sqlresult = sqlquery "user" $userpw $DB $sql
    $result=$sqlresult[0]
    if ($result -ne 0) {
        write-log "[ERROR:] Not all user-records deleted : $result"
        exit
        }
    else {write-log "[INFO:] Table is empty : $result"}

    Es geht einfach darum, dass ich eine Tabelle leere und sie dann mittels eines Count(*) auf den Inhalt prüfe. (sqlquery ist eine Funktion aus einer eigenen Libary, die mir das Auführen dieser SQL-Statements erleichtert).

    Mit dem Debugger habe ich nun schon rausgefunden, dass die Werte des Count (* ) brav in das Array gespeichert und von da auch in die Variable $result übernommen werden.

    Sobald ich aber in den Vergleich gehe, springt er mir in die ERROR: Zeile und als $result wird ein E ausgegeben. Ich habe keinen Plan warum er das macht. Wird die Variable irgendwie falsch belegt?

    Donnerstag, 8. November 2012 13:52

Antworten

  • Hallo,

    sry fürs späte antworten. Nein leider nicht. War auch schon auf die Idee gekommen.

    Aber ich habs soeben für mich selber gelöst:

    Ich habe mir mal die Mühe gemacht, das komplette Array auszugeben. Denn das E ist nur der Anfang von dem Wort Exception ... . Raus kam ein Datenfehler, der wegen dem ";" am Ende des SQLs entstanden ist. Ich könnt mir selber an den Kopf schlagen! Man sollte die eigenen Libs halt schon kennen.

    $sql = "select count(*) from table_a;"

    Meine Lektion: Arrays bei einem nicht erwarteten Ergebnis komplett ausgeben, und nicht nur einige ausgewählte Felder.

    Aber danke für eure Hilfe!
    Dienstag, 13. November 2012 12:58

Alle Antworten