Thread: CREATE TYPE example needed
Hi all, I am looking for a way to create a VARCHAR2 (oracle) type so I can use the same SQL to create my tables in either Oracle or Postgresql. Does anyone have a working example? I have tried the following with no luck create type varchar2 (input=varcharin,output=varcharout,INTERNALLENGTH=VARIABLE); ERROR: TypeCreate: function 'varcharin(opaque)' does not exist Thanks Jim
"Jim Buttafuoco" <jim@spectrumtelecorp.com> writes: > I am looking for a way to create a VARCHAR2 (oracle) type so I can use the same SQL to create my tables in either Oracle > or Postgresql. Does anyone have a working example? In 7.3, it's easy to use a "domain" as a type alias. CREATE DOMAIN varchar2 AS varchar; This has the advantage that all the operations on varchar will work for varchar2. If you make a real type, you need to provide all those operations. Note however that this doesn't give you any special syntax for varchar2. If you're expecting to be able to write "varchar2(N)" you're still out of luck... regards, tom lane
Thanks for the answer Tom, I did want to write varchar2(n). Is this something special in the code? Could I somehow muck with the system catalogs and copy varchar. The object of the execise is to have one set of SQL statements for both Oracle and Postgres. I think it would help other people converting if we had the ability to handle Oracle table create statements. Thanks Jim > "Jim Buttafuoco" <jim@spectrumtelecorp.com> writes: > > I am looking for a way to create a VARCHAR2 (oracle) type so I can use the same SQL to create my tables in either Oracle > > or Postgresql. Does anyone have a working example? > > In 7.3, it's easy to use a "domain" as a type alias. > > CREATE DOMAIN varchar2 AS varchar; > > This has the advantage that all the operations on varchar will work for > varchar2. If you make a real type, you need to provide all those > operations. > > Note however that this doesn't give you any special syntax for varchar2. > If you're expecting to be able to write "varchar2(N)" you're still out > of luck... > > regards, tom lane
"Jim Buttafuoco" <jim@spectrumtelecorp.com> writes: > Thanks for the answer Tom, I did want to write varchar2(n). Is this > something special in the code? Could I somehow muck with the system > catalogs and copy varchar. Nope, won't help you. varchar(n) is hard-wired in the grammar. Since there are so few datatypes that have specialized syntax, there's no provision for extensibility of that syntax. Short of a lot of cutting-and-pasting in the parser, I don't think you're going to get it to work. regards, tom lane