CREATE OR REPLACE FUNCTION oracle.unistr(text)
RETURNS text
AS 'MODULE_PATHNAME','orafce_unistr'
LANGUAGE 'c';
do $$
BEGIN
IF EXISTS(SELECT * FROM pg_settings WHERE name = 'server_version_num' AND setting::int >= 120000) THEN
ALTER FUNCTION varchar2(varchar2, integer, boolean) SUPPORT varchar2_transform;
ELSE
UPDATE pg_proc SET protransform= 'varchar2_transform'::regproc::oid WHERE proname='varchar2';
INSERT INTO pg_depend (classid, objid, objsubid,
refclassid, refobjid, refobjsubid, deptype)
VALUES('pg_proc'::regclass::oid, 'varchar2'::regproc::oid, 0,
'pg_proc'::regclass::oid, 'varchar2_transform'::regproc::oid, 0, 'n');
END IF;
END
$$;
do $$
BEGIN
IF EXISTS(SELECT * FROM pg_settings WHERE name = 'server_version_num' AND setting::int >= 120000) THEN
ALTER FUNCTION nvarchar2(nvarchar2, integer, boolean) SUPPORT nvarchar2_transform;
ELSE
UPDATE pg_proc SET protransform= 'nvarchar2_transform'::regproc::oid WHERE proname='nvarchar2';
INSERT INTO pg_depend (classid, objid, objsubid,
refclassid, refobjid, refobjsubid, deptype)
VALUES('pg_proc'::regclass::oid, 'nvarchar2'::regproc::oid, 0,
'pg_proc'::regclass::oid, 'nvarchar2_transform'::regproc::oid, 0, 'n');
END IF;
END
$$;