[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2005
    Beiträge
    16
    Hallo Fuerchau,

    wie wären denn die entsprechenden "Set Options" ?

    Hier das shell script von Scott Klement:

    #!/usr/bin/qsh

    LIB=$1
    FILE=$2
    FIELDLIST=

    get_fields() {
    db2 "select '!'||sys_cname||' '||coltype from qsys2.syscolumns \
    where sys_dname='$LIB' and sys_tname='$FILE'" \
    | grep '^!' \
    | cut -b 2-
    }

    build_field_list() {

    FIELDLIST="'!'"

    while read field type; do

    case "$type" in
    CHAR)
    QUOTE=Y
    ;;
    WCHAR)
    QUOTE=Y
    ;;
    VARCHAR)
    QUOTE=Y
    ;;
    *)
    QUOTE=N
    ;;
    esac

    if [ "$QUOTE" = "Y" ]; then
    FIELDLIST="${FIELDLIST}||','||'\"'||trim($field)||'\"'"
    else
    FIELDLIST="${FIELDLIST}||','||trim(char($field))"
    fi

    done
    }

    make_csv() {
    RUNSQL="select ${FIELDLIST} from ${LIB}.${FILE}"
    echo $RUNSQL
    db2 "$RUNSQL" \
    | grep "^!" \
    | cut -b 3-
    }

    get_fields | build_field_list
    make_csv

    Das funktioniert - je nach Release - tadellos.
    Wenn man das SQL Verhalten durch CHGJOB steuern kann, wäre es ja einfach.
    Ein setzen der SQL Optionen wäre mir allerdings sympathischer.
    Ich weiß nur nicht, wie die Anweisungen lauten.

    Danke vorab

    Karl

    P.S.: Das Script funktioniert so nicht !

    Das ist zwar tadelloses Unix bash script, aber auf i-series wird z.B. das "^" nicht richtig interpretiert, das ja ein "beginnend mit" Muster auswerten soll. Ich vermute mal ein Zeichensatz Thema.

    P.P.S: Unter V5/R1 funktioniert das nur bei Dateien mit wenigen Feldern.
    Ich vermute mal ein Restriktion in der Parametergröße, da sich der Abfragestring ziemlich aufbläht, wenn man eine Datei mit vielen Feldern hat.
    Unter V5/R3 läuft das wie ein Glöckchen, bei V5/R1 ist die $Fieldlist = *BLANK, wenn die Datei viele Felder hat.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Irgendwo muss ja noch ein Connect stecken, da solche Scripts meist CLI verwenden.
    Im Connect können dann die Parameter gesetzt werden.
    Ggf. sind auch SetStatementAttribute, SetConnectionAttribute o.ä. erforderlich.

    Das Dezimalformat wird automatisch aus dem Job genommen, das Datumformat kann man ggf. auch casten (Feldtyp halt ermitteln):

    ... char(mydate, ISO) ...
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2005
    Beiträge
    16
    @Fuerchau,

    nein, da gibts keinen Connect. Jedenfalls keinen, der von meiner Seite aus explizit angegeben wird.

    Das script wir schlicht als qsh command abgesetzt, bzw interaktiv in einer shell aufgerufen.

    Der Connect versteckt sich vermutlich implizit hier:
    "db2 "$RUNSQL"

    Aber ich weiß immer noch nicht, mit welchem SQL Befehl ich jetzt Einfluß auf das Verhalten nehmen könnte.

    Wie würde z.B. "SetConnectionAttribute" kodiert werden ?

    Gruß
    Karl

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Tja, da muss ich passen.
    Vielleicht gibts ja eine Beschreibung zum db2-Objekt ?
    Da kann man sicherlich noch Einstellungen vornehmen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 18-07-16, 09:49
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •