Hi some Orafce's user reported problems with pg_upgrade. I checked this issue and it looks like pg_dump problem:
pg_restore: creating FUNCTION "public.nvarchar2("public"."nvarchar2", integer, boolean)" pg_restore: while PROCESSING TOC: pg_restore: from TOC entry 612; 1255 33206 FUNCTION nvarchar2("public"."nvarchar2", integer, boolean) pavel pg_restore: error: could not execute query: ERROR: function public.nvarchar2_transform(internal) does not exist Command was: CREATE FUNCTION "public"."nvarchar2"("public"."nvarchar2", integer, boolean) RETURNS "public"."nvarchar2" LANGUAGE "c" IMMUTABLE STRICT SUPPORT "public"."nvarchar2_transform" AS '$libdir/orafce', 'nvarchar2'; -- -- TOC entry 612 (class 1255 OID 33206) -- Name: nvarchar2("public"."nvarchar2", integer, boolean); Type: FUNCTION; Schema: public; Owner: pavel -- CREATE FUNCTION "public"."nvarchar2"("public"."nvarchar2", integer, boolean) RETURNS "public"."nvarchar2" LANGUAGE "c" IMMUTABLE STRICT SUPPORT "public"."nvarchar2_transform" AS '$libdir/orafce', 'nvarchar2'; -- For binary upgrade, handle extension membership the hard way ALTER EXTENSION "orafce" ADD FUNCTION "public"."nvarchar2"("public"."nvarchar2", integer, boolean); ALTER FUNCTION "public"."nvarchar2"("public"."nvarchar2", integer, boolean) OWNER TO "pavel"; -- -- TOC entry 607 (class 1255 OID 33201) -- Name: nvarchar2_transform("internal"); Type: FUNCTION; Schema: public; Owner: pavel -- CREATE FUNCTION "public"."nvarchar2_transform"("internal") RETURNS "internal" LANGUAGE "c" IMMUTABLE STRICT AS '$libdir/orafce', 'orafce_varchar_transform'; -- For binary upgrade, handle extension membership the hard way ALTER EXTENSION "orafce" ADD FUNCTION "public"."nvarchar2_transform"("internal"); ALTER FUNCTION "public"."nvarchar2_transform"("internal") OWNER TO "pavel"; the supporting function should be dumped first before function where supporting function is used. Regards Pavel