Schau dir den Inhalt von "CallCmd" an.
Diese enthält ja selber Hochkommata, nämlich die X'...'.

Nun kommen wir zur SQL-Syntax:
Zeichenketten zwischen Hochkommas, enthaltene Hochkommas verdoppeln (sieht man auch schon mal im CLP).

'Baldur''s Hinweis' => Baldur's Hinweis

Dein CallCmd sieht dann wohl so aus:

CALL MYLIB/MYPGM PARM(X'123F' X'1234567F')

Da du das wiederum als Text an QCMDEXC übergeben musst erfolgt daraus:

"CALL QSYS.QCMDEXC '" & replace(CallCmd, "'", "''") & "' , " & format(...


Man beachte:
Dein CallCmd wird zwischen einfachen Hochkomma eingebettet, die enthaltenen werden verdoppelt.
Beim Aufruf von QCMDEXC werden die doppelten wieder auf einfach zurückgesetzt, daher ist die Länge wie gehabt ohne Verdoppelung zu berechnen.