Dear friends,
I studying the possibility to port Compiere CRM from Oracle to PostgreSQL. As
Compiere evolves nearly everyday in CVS, I would like to run the Oracle code
without (too much) modification.
Don't blame me, I know using search/replace works most of the times.
At first, I used CREATE TYPE syntax to map Oracle nvarchar2 to PostgreSQL
varchar type (see code #1). The code seems to be the equivalent of:
CREATE DOMAIN nvarchar2 as varchar;
Now I can create tables with nvarchar2 but not nvarchar2(lengh t).
Is there a way to map Oracle nvarchar2(lengh t) to PostgreSQL nvarchar or
nvarchar(lenght ) in PostgreSQL 7.3?
Are there plans to allow such mapping in the future using the CREATE DOMAIN
syntax?
Best regards,
Jean-Michel Pouré
*************** *************** *************** *************** **********
Code #1
--DROP TYPE nvarchar2 CASCADE;
CREATE OR REPLACE FUNCTION oracle_nvarchar 2in(cstring, oid, int4)
RETURNS nvarchar2 AS
'varcharin'
LANGUAGE 'internal' IMMUTABLE STRICT;
COMMENT ON FUNCTION oracle_nvarchar 2in(cstring, oid, int4) IS '(internal)';
CREATE OR REPLACE FUNCTION oracle_nvarchar 2out(nvarchar2)
RETURNS cstring AS
'varcharout'
LANGUAGE 'internal' IMMUTABLE STRICT;
CREATE TYPE nvarchar2
(INPUT=oracle_n varchar2in, OUTPUT=oracle_n varchar2out, DEFAULT='',
INTERNALLENGTH=-1, ALIGNMENT=int4, STORAGE=EXTENDE D);
COMMENT ON TYPE nvarchar2 IS 'Oracle type nvarchar2(lengt h) mapped to
PostgreSQL type varchar(lenght) ';
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddres sHere" to ma*******@postg resql.org)