Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

ris schrieb am 17.March.2009, 09:09:52 in der Kategorie pc.coding

SQL Windows Datentyp "?text?"

Liebe Leute, ich hab ein Problem. Und zwar hauptsächlich dass ich mich nicht auskenn ;)

Ich habe eine Datenbank, deren Definition ich nicht kenne (Fremdprodukt). Da möchte ich mit einem Auswertungsgenerator auf SQL-Basis eine Tabelle auslesen.
Und da gibts eine Spalte, die sich wehrt ...

So viel hab ich mir schon zusammengereimt:
Der Primary Key ist MAN, AK, PNR, VERTNR, P_LFD
Dann gibts \'normale\' Spalten (P_DATE,P_TIME,P_UID,ZDAT)
Und meinen \'Freund\' P_DATA, die Spalte wird in meinem Programm als \"Lange Zeichenkette\" beschrieben, was immer das heissen mag. Es gibt für P_DATA mehrere Inhalte, die nicht mit einem Key versehen sind. Der Sinn ist mir schon klar: es handelt sich um ein Änderungsprotokoll, und da werden halt mehrere Inhalte geändert (und im Client in einem eigenen Fenster untereinander angezeigt).
So.
Vom SQL wird P_DATA jetzt nicht als \'normale\' Spalte selektiert, sondern in jeweils einer neuen Zeile - ohne die anderen Spalten.
So kann ich das nicht weiterverarbeiten.

Meine Frage:
Gibt es vielleicht eine Funktion, mit der man SQL dazu bringen kann, das \'normal\' bereitzustellen?

Ach ja, wichtig: ich bin leider auf eine Ausführung in einem einzigen Select beschränkt. Das muss also irgendwie auf einmal flutschen... ;)

Danke im Voraus,
Stefan

Das SELECT:
SELECT PROT_CHANGE.MAN ,
PROT_CHANGE.AK ,
PROT_CHANGE.PNR ,
PROT_CHANGE.VERTNR ,
PROT_CHANGE.P_LFD ,
PROT_CHANGE.P_DATA ,
PROT_CHANGE.P_DATE ,
PROT_CHANGE.P_TIME ,
PROT_CHANGE.P_UID ,
PROT_CHANGE.ZDAT
FROM L2001.PROT_CHANGE PROT_CHANGE
WHERE PROT_CHANGE.MAN= \'xxxxx\'
AND PROT_CHANGE.PNR= \'yyyyyy\'
AND PROT_CHANGE.P_MASKID=\'PSTVAR\'
AND PROT_CHANGE.P_DATE = \'2009-03-11\'
ORDER BY 1 ASC ,
2 ASC ,
3 ASC ,
4 ASC
;

Das Ergebnis:
MAN AK PNR VERTNR P_LFD P_DATE P_TIME P_UID ZDAT
===== ===== ============ =========== =========== ==================== ==================== =============== ====================
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00
P_DATA
======
VIZDAT= \"2009-04-01-00.00.00.000000\";
VILA= \"702\";
VIEBETR= \"805,27\";
VILFD= \"1\";
VIADAT= \"2009-04-01-00.00.00.000000\";
VIUSERID= \"L4016RF\";
VIMAN= \"34016\";
VIAK= \"ANGV\";
VIPNR= \"yyyyyy\";
VIVERTNR= \"1\";
VIVBAB= \"2008-10-01-00.00.00.000000\";
VIMANLA= \"**151\";
VIAKLA= \"*\";
VILAAB= \"2005-01-01-00.00.00.000000\";

Mein Wunschergebnis:
MAN AK PNR VERTNR P_LFD P_DATE P_TIME P_UID ZDAT P_DATA
===== ===== ============ =========== =========== ==================== ==================== =============== ==================== ======
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIZDAT= \"2009-04-01-00.00.00.000000\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VILA= \"702\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIEBETR= \"805,27\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VILFD= \"1\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIADAT= \"2009-04-01-00.00.00.000000\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIUSERID= \"L4016RF\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 IMAN= \"xxxxx\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 IAK= \"ANGV\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIPNR= \"yyyyyy\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIVERTNR= \"1\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIVBAB= \"2008-10-01-00.00.00.000000\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIMANLA= \"**151\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VIAKLA= \"*\";
xxxxx ANGV yyyyyy 1 6 11-MAR-2009 00:00:00 01-JAN-1899 07:51:00 L4016RF 01-APR-2009 00:00:00 VILAAB= \"2005-01-01-00.00.00.000000\";

(sorry, ich kanns nicht besser formatieren)
Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz