Why the detour via pbf? osm2po allows you to write your own Reader and to inject it into the processing chain. All you need is a Java-Class which implements `OsmParser`.

    @Override
    public void open(InputStream inputStream,
            OsmParserHandler osmParserHandler, Config config) {
        this.handler = osmParserHandler;
        this.log = config.getLog();
        // inputStream is not needed, open your DB here instead.
        // db-params can be set via config
    }

    @Override
    public void close() {
        // close your db here.
    }
    
    @Override
    public void parse() {
        // Read your table here and call back
    
        // 1) All Nodes first
        this.handler.onNode(long id, double lat, double lon);
        this.handler.onNodeTag(String key, String value);
        this.handler.onNodeComplete();
        this.handler.closeNodeProcessing();

        // 2) Then all Ways
        this.handler.onWay(long id);
        this.handler.onWayNdRef(long ndRefId);
        this.handler.onWayTag(String key, String value);
        this.handler.onWayComplete();
        // void closeWayProcessing();

        // 3) Finally all Relations
        this.handler.onRelation(long id);
        this.handler.onRelationMember(String type, long ref, String role);
        this.handler.onRelationTag(String key, String value);
        this.handler.onRelationComplete();
        this.handler.closeRelationProcessing();
    }