Re: psql:t_mstr.sql:994: ERROR: function to_char(numeric) does not exist

Поиск
Список
Период
Сортировка
От gzh
Тема Re: psql:t_mstr.sql:994: ERROR: function to_char(numeric) does not exist
Дата
Msg-id 5027d9b9.7aad.187b831fb18.Coremail.gzhcoder@126.com
обсуждение исходный текст
Ответ на Re: psql:t_mstr.sql:994: ERROR: function to_char(numeric) does not exist  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: psql:t_mstr.sql:994: ERROR: function to_char(numeric) does not exist  (Erik Wienhold <ewie@ewie.name>)
Список pgsql-general
>The solution is the same whether you upgrade or not: you need
>to adjust your search_path to include the "oracle" schema,
>or else explicitly qualify references to orafce functions.
Thank you very much for your help.

To use the to_date functions of Orafce 3.0.1, we created the following to_date function in the public schema of the old database.

-----
CREATE OR REPLACE FUNCTION to_date(str text) RETURNS date AS $$ SELECT $1::date; $$ LANGUAGE sql IMMUTABLE STRICT; COMMENT ON FUNCTION public.to_date(text) IS 'Convert string to date';
-----

To avoid using a to_date function with the same name and parameter in the pg_catalog schema first, the search_path of the old database is set as follows:

"$user", public, pg_catalog

Make sure that public is searched before pg_catalog.
After the database is upgraded, in order to solve the changes in Oracle 3.24, we have added oracle schema to the search_path, as shown below:

"$user", public, oracle, pg_catalog

The following error occurred when I ran my application.

42P13:ERROR:42P13: return type mismatch in function declared to return pg_catalog.date

When I put the oracle schema at the end of the search_path, the problem was solved. 
The search_path settings without problems are as follows:

"$user", public, pg_catalog, oracle

Why does it report an error when i put oracle between public and pg_catalog?





At 2023-04-20 01:18:15, "Tom Lane" <tgl@sss.pgh.pa.us> wrote: >gzh <gzhcoder@126.com> writes: >> Thank you for your prompt reply. >> Is there another solution if the database is not upgraded to 12.14? > >The solution is the same whether you upgrade or not: you need >to adjust your search_path to include the "oracle" schema, >or else explicitly qualify references to orafce functions. > > regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Erik Wienhold
Дата:
Сообщение: Re: murmur3 hash binary data migration from Oracle to PostgreSQL
Следующее
От: Matthias Apitz
Дата:
Сообщение: DBD::Pg (version 3.16.3) returns EMPTY char columns as 'undef'