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.