En PowerCobol no se, pero en RM/Cobol que es lo que yo utilizo con base de datos SQLserver, PostgreSQL, etc, utilizo para los importes campos de edición o alfanumericos que seria lo mismo.
Intenta declarar un campo para probar:
01 importe pic ---------------9.99.
Yo pongo siempre "." en vez de ',' para no meter configuraciones ni conversiones.
Si no te funciona prueba con
01 importe pic x(16).
y luego un "move importe to importe-numerico "
Y en algunas ocasiones para ejecutar procedimientos almacenados en la base de datos (o funciones) utilizo campos numericos como tu indicas:
Código COBOL:
01 valor1 pic S9(15)V99.
01 consulta-sql pic x(100).
****** esto seria la consulta que quiero hacer al procedimiento almacenado f_saldo
initialize consulta-sql
STRING "select f_saldo"
delimited by size
"('" cuenta "')"
delimited by size
INTO consulta-sql
********** para ejecutar la consulta y recibir resultado
SQL PREPARE QUERY sql-QueryHaNdle
sql-ConnectionHandle
consulta-sql.
SQL START QUERY sql-QueryHandle.
SQL FETCH ROW sql-QueryHandle
SQL GET DATA sql-queryhandle
1 VALOR1 OMITTED.
Pero este ultimo rollo que he puesto aqui es para rm/cobol