Anmelden

View Full Version : Anzeige Stored PRocedure auf 5250 Emulation



Seiten : [1] 2

ExAzubi
25-02-16, 08:41
Hallo zusammen,

über den iSeries-Navigator kann man sich ja die Statements einer Stored Procedure anzeigen lassen.

Meine Frage leutet nun, ist das der einzige weg, oder aber existiert eine Möglichkeit sich die Stored Procedure auch auf Grün-Schwarz anzeigen zu lassen?

Danke an alle Helfenden!

Viele Grüße

David

BenderD
25-02-16, 09:04
SELECT ROUTINE_DEFINITION
FROM qsys2.sysprocs
where ROUTINE_SCHEMA = ...
and ROUTINE_NAME = ...

ExAzubi
25-02-16, 09:38
Ja habe ich schon Probiert, dort bekomme ich aber nur *POINTER als Ergebnis angezeigt. Wie gesagt im Navigator alles bestens...

Fuerchau
25-02-16, 09:45
Das liegt nun daran, dass STRSQL keine LOB's anzeigt.
Hier kannst du ggf. dann mit CHAR(SUBSTR(MYLOB, 1, 2000)) was erreichen.

BenderD
25-02-16, 09:46
... seltsam, seltsam, bei mir ist das Feld Varchar. Was hast Du für ein Release? und welche Datenart hat das Feld ROUTINE_DEFINITION? Falls das CLOB ist, hast Du mal versucht das nach char zu casten?

ExAzubi
25-02-16, 10:56
Release V7R2 und ja Feld ist ein DBCLOB
Substr geht auch nicht, bekoamme dann die Fehlermedlung (Ergebnis ist zu lang) selbst bei einem Substr 1 32)???

BenderD
25-02-16, 11:21
... was sagt:
select char(ROUTINE_DEFINITION, 2048) from ...

bzw. char(substring(..., 1, 2048), 2048) ...

mit letzterem kannst Du Dir das in beliebigen Portionen kleiner als max Länge einer char (war mal 32tausend + Unkraut) raushacken.

D*B

... eventuell musst Du den DBCLOB auch noch verarzten, die müssen wieder mal was geraucht haben bei IBM, das Zeug hätte ich in meiner Sturm- und Drangzeit haben müssen...

Fuerchau
25-02-16, 11:46
DBCLOB ist nun mal eine Struktur und kann von STRSQL nicht mehr angezeigt werden.
Hier geht nur noch embedded SQL oder eben Navigator (oder Nachfolger Web-Navigator).
Es gibt leider keine Konvertierung von DBCLOB nach VARCHAR sondern nur umgekert.

andreaspr@aon.at
25-02-16, 11:59
Es gibt leider keine Konvertierung von DBCLOB nach VARCHAR sondern nur umgekert.

Stimmt nicht! Es geht ganz simple mit der CAST Funktion.


SELECT cast (ROUTINE_DEFINITION as Varchar(9999))
FROM qsys2.sysprocs where ROUTINE_SCHEMA = 'LIB'

lg Andreas

Fuerchau
25-02-16, 12:43
Hast du auch V7R2?
Laut aktuellem SQL-Handbuch für V7R2 kann man das wohl nicht. Aber Handbücher sind wohl nicht immer so aktuell. Ich kann es nicht ausprobieren.